Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich den Fehler „nicht unterstütztes Protokollschema' in der Go-Basisauthentifizierung?

Wie behebe ich den Fehler „nicht unterstütztes Protokollschema' in der Go-Basisauthentifizierung?

Barbara Streisand
Barbara StreisandOriginal
2024-11-24 03:24:10930Durchsuche

How to Fix

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn