Heim > Artikel > Backend-Entwicklung > Wie behebe ich den Fehler „nicht unterstütztes Protokollschema' in der Go-Basisauthentifizierung?
HTTP-Basisauthentifizierung in Go: Fehlerbehebung bei einem häufigen Fehler
Beim Versuch, die grundlegende HTTP-Authentifizierung mit dem bereitgestellten Code zu implementieren, tritt ein Fehler auf: „nicht unterstütztes Protokollschema''“. Dies kann auf ein Versehen im Code beim Erstellen des Anforderungsobjekts zurückgeführt werden.
Um diesen Fehler zu beheben, stellen Sie sicher, dass das richtige Schema in der Anforderungs-URL angegeben ist. Das angegebene Beispiel versucht, eine Anfrage an „mydomain.example“ zu stellen, ohne ein Protokollschema anzugeben, was zu dem Fehler führt.
Um dies zu beheben, ändern Sie den Code, um das HTTPS-Schema wie folgt explizit anzugeben:
req, err := http.NewRequest("GET", "https://mydomain.example", nil)
Darüber hinaus ist zu beachten, dass der HTTP-Client von Go möglicherweise auf ein weiteres Problem bei der Verarbeitung von Weiterleitungen stößt. Standardmäßig behält der Client bei Weiterleitungen keine benutzerdefinierten Header, einschließlich des Basic Authorization-Headers, bei.
Um dieses Verhalten zu umgehen, können Sie eine benutzerdefinierte Weiterleitungsrichtlinienfunktion definieren, die den Authorization-Header bei Weiterleitungen explizit wieder hinzufügt. Dadurch wird sichergestellt, dass die Authentifizierungsdaten während des gesamten Umleitungsprozesses erhalten bleiben.
Hier ist ein Beispiel einer benutzerdefinierten Umleitungsrichtlinienfunktion:
func redirectPolicyFunc(req *http.Request, via []*http.Request) error { req.Header.Add("Authorization", "Basic " + basicAuth(username, password)) return nil }
Durch die Verwendung dieser benutzerdefinierten Richtlinie im HTTP-Client stellen Sie sicher dass der Basic Authorization-Header bei Weiterleitungen ordnungsgemäß verarbeitet wird, was eine nahtlose Authentifizierung ermöglicht.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „nicht unterstütztes Protokollschema' in der Go-Basisauthentifizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!