Heim > Backend-Entwicklung > Golang > Bei Verwendung der JSON-Schlüsseldatei des Dienstkontos in der Go-Anwendung wird die Meldung „Die Anfrage weist ungültige Authentifizierungsdaten' angezeigt

Bei Verwendung der JSON-Schlüsseldatei des Dienstkontos in der Go-Anwendung wird die Meldung „Die Anfrage weist ungültige Authentifizierungsdaten' angezeigt

WBOY
Freigeben: 2024-02-09 12:18:20
nach vorne
1192 Leute haben es durchsucht

在 Go 应用程序中使用服务帐户 json 密钥文件时获取“请求具有无效的身份验证凭据”

php Editor Banana Wenn Sie eine JSON-Schlüsseldatei eines Dienstkontos in einer Go-Anwendung verwenden, kann das Problem „Anfrage hat ungültige Authentifizierungsdaten“ auftreten. Dieses Problem wird normalerweise durch ein falsches Format oder einen falschen Inhalt der Schlüsseldatei verursacht. Um dieses Problem zu beheben, überprüfen Sie, ob die Schlüsseldatei das richtige Format hat und die richtigen Authentifizierungsinformationen enthält. Versuchen Sie außerdem, die Schlüsseldatei neu zu generieren und sicherzustellen, dass sie ordnungsgemäß in der Anwendung konfiguriert ist. Mit diesen Methoden können Sie das Problem „Anfrage hat ungültige Authentifizierungsdaten“ lösen und die JSON-Schlüsseldatei des Dienstkontos normal verwenden.

Frageninhalt

Ich entwickle eine Go-Anwendung für ein GCP-Projekt und verwende den Google Cloud-Protokollierungsdienst. Ich habe Probleme beim Ausführen der App, da mir angezeigt wird, dass meine Authentifizierungsdaten ungültig sind, wenn ich den JSON-Schlüssel des Dienstkontos verwende.

Dies ist der Codeausschnitt mit dem Fehler:

c, cerr := load(".env")
    if cerr != nil {
        log.fatalf("could not load config: %s", cerr)
        return
    }

    // initializes logger which writes to stdout
    ctx := context.background()
    opt := option.withcredentialsfile(c.googleapplicationcredentials);
    loggerclient, clienterr := logging.newclient(ctx, "poc-projects-01", opt)
    if clienterr != nil {
        log.fatal(clienterr)
    }
Nach dem Login kopieren

Dies ist die Definition der load()-Funktion:

func Load(file string) (*Config, error) {
    viper.SetConfigFile(file)
    viper.AddConfigPath(".")
    viper.AutomaticEnv()
    if err := viper.ReadInConfig(); err != nil {
        return nil, err
    }
    
    c := &Config{
        GoogleApplicationCredentials: viper.GetString("GOOGLE_APPLICATION_CREDENTIALS"),
    }

    return c, nil
}
Nach dem Login kopieren

Ich habe eine .env Datei mit folgendem Inhalt: google_application_credentials=json/path-to-json.json

Ich weiß nicht, warum es heißt, dass das Token abgelaufen ist, obwohl dies der einzige JSON-Schlüssel für das Dienstkonto ist, den ich auf gcp und meinem lokalen Computer habe.

Problemumgehung

Sie können gcloud auth application-default login ausführen und sicherstellen, dass das richtige Projekt eingestellt ist.

Überprüfen googleapplicationscredentals, ob ein gültiger JSON-Schlüssel festgelegt ist und ob die Umgebungsvariablen korrekt festgelegt sind. Führen Sie bitte den folgenden Befehl aus, um zu überprüfen

echo $google_application_credentials
Nach dem Login kopieren

Wenn der Befehl nicht den richtigen Pfad zum JSON-Schlüssel zurückgibt, können Sie die Umgebungsvariable mit dem folgenden Befehl festlegen:

export GOOGLE_APPLICATION_CREDENTIALS=/path/to/json/key.json
Nach dem Login kopieren

Nachdem Sie überprüft haben, ob der JSON-Schlüssel gültig ist und die Umgebungsvariablen richtig eingestellt sind, sollten Sie Ihre Anwendung ausführen können. Alternativ können Sie versuchen, die .env-Datei zu löschen und dann den Dienstkonto-JSON-Schlüssel zu verwenden. Dadurch sollte das Token neu generiert und gültig gemacht werden.

Zusätzliches Fehlerbehebungsdokumentals Referenz. a>

Das obige ist der detaillierte Inhalt vonBei Verwendung der JSON-Schlüsseldatei des Dienstkontos in der Go-Anwendung wird die Meldung „Die Anfrage weist ungültige Authentifizierungsdaten' angezeigt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage