php Editor Banana Lorsque vous utilisez un fichier de clé JSON de compte de service dans une application Go, vous pouvez rencontrer le problème « La demande comporte des informations d'authentification non valides ». Ce problème est généralement dû à un format ou à un contenu incorrect du fichier de clé. Pour résoudre ce problème, vérifiez que le fichier de clé est au format correct et qu'il contient les informations d'authentification correctes. Essayez également de régénérer le fichier de clé et assurez-vous qu'il est correctement configuré dans l'application. Grâce à ces méthodes, vous pouvez résoudre le problème « la demande contient des informations d'authentification non valides » et utiliser normalement le fichier de clé JSON du compte de service.
Je développe une application go sur le projet gcp et j'utilise le service de journalisation cloud de Google. J'ai du mal à exécuter l'application, car elle indique que mes informations d'authentification ne sont pas valides lorsque j'utilise la clé JSON du compte de service.
Voici l'extrait de code avec l'erreur :
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) }
Voici la définition de la fonction load()
:
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 }
J'ai un .env
fichier avec le contenu suivant :
google_application_credentials=json/path-to-json.json
Je ne sais pas pourquoi il est indiqué que le jeton a expiré même s'il s'agit de la seule clé JSON de compte de service que j'ai sur gcp et sur ma machine locale.
Vous pouvez exécuter gcloud auth application-default login
a> et vous assurer que vous l'avez défini sur le bon projet.
Vérifiez googleapplicationscredentals
si une clé json valide est définie et si les variables d'environnement sont définies correctement, veuillez exécuter la commande suivante pour vérifier
echo $google_application_credentials
Si la commande ne renvoie pas le chemin correct vers la clé json, vous pouvez définir la variable d'environnement à l'aide de la commande suivante :
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/json/key.json
Après avoir vérifié que la clé json est valide et que les variables d'environnement sont correctement définies, vous devriez pouvoir exécuter votre application. Alternativement, vous pouvez essayer de supprimer le fichier .env, puis d'utiliser la clé json du compte de service et cela devrait régénérer le jeton et le rendre valide.
Dépannage supplémentairedocument a>pour référence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!