Maison > développement back-end > Golang > Obtenir 'La demande avait des informations d'authentification non valides' lors de l'utilisation du fichier de clé JSON du compte de service dans l'application Go

Obtenir 'La demande avait des informations d'authentification non valides' lors de l'utilisation du fichier de clé JSON du compte de service dans l'application Go

WBOY
Libérer: 2024-02-09 12:18:20
avant
1192 Les gens l'ont consulté

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

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.

Contenu de la question

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)
    }
Copier après la connexion

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
}
Copier après la connexion

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.

Solution de contournement

Vous pouvez exécuter gcloud auth application-default login 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
Copier après la connexion

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
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal