Zu den Authentifizierungsmethoden in Go gehören: Basisauthentifizierung: Verwenden Sie Benutzernamen und Passwort, der Bestätigungscode wird im Artikel angezeigt. Inhabertoken-Authentifizierung: Verwenden Sie ein Token als Anmeldeinformation. Der Bestätigungscode wird im Artikel angezeigt. OAuth 2.0-Authentifizierung: Ein Autorisierungsprotokoll, der Bestätigungscode wird im Artikel gezeigt. Praxisbeispiel: Der Code zum Aktivieren der Basisauthentifizierung für alle Routen finden Sie im Artikel.
Die Verwendung von HTTP für die Authentifizierung in Go ist entscheidend für die Sicherheit Ihrer Anwendung und die Authentifizierung von Benutzern. Hier finden Sie eine Anleitung zu mehreren gängigen Authentifizierungsmethoden in Go, einschließlich praktischer Beispiele.
Die Basisauthentifizierung ist die einfachste Authentifizierungsmethode, bei der Benutzername und Passwort zur Authentifizierung verwendet werden.
func BasicAuth(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { username, password, ok := r.BasicAuth() if !ok || username != "user" || password != "password" { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } next.ServeHTTP(w, r) }) }
Bearer-Token-Authentifizierung verwendet Token als Anmeldeinformationen.
func BearerAuth(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { token := r.Header.Get("Authorization") if token != "Bearer my-token" { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } next.ServeHTTP(w, r) }) }
OAuth 2.0 ist ein weit verbreitetes Autorisierungsprotokoll, das es Benutzern ermöglicht, Anwendungen von Drittanbietern den Zugriff auf ihre Daten zu autorisieren.
func OAuth2Auth(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { token := r.URL.Query().Get("access_token") if token != "my-access-token" { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } next.ServeHTTP(w, r) }) }
Angenommen, Sie haben einen HTTP-Router und möchten die Standardauthentifizierung für alle Routen aktivieren:
import ( "log" "net/http" "github.com/gorilla/mux" ) func main() { router := mux.NewRouter() router.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, authenticated user!")) }) // Use BasicAuth middleware to protect all routes loggedRouter := BasicAuth(router) log.Fatal(http.ListenAndServe(":8080", loggedRouter)) }
Wenn jetzt jemand versucht, auf die Root-Route (http://localhost:8080/
) zuzugreifen, wird er andernfalls nach seinem Benutzernamen und Passwort gefragt Sie erhalten eine 401 Unauthorized-Antwort.
Das obige ist der detaillierte Inhalt vonWie verwende ich HTTP zur Authentifizierung in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!