Rumah > pembangunan bahagian belakang > Golang > Mendapatkan 'Permintaan mempunyai bukti kelayakan pengesahan yang tidak sah' apabila menggunakan fail kunci json akaun perkhidmatan dalam aplikasi Go

Mendapatkan 'Permintaan mempunyai bukti kelayakan pengesahan yang tidak sah' apabila menggunakan fail kunci json akaun perkhidmatan dalam aplikasi Go

WBOY
Lepaskan: 2024-02-09 12:18:20
ke hadapan
1175 orang telah melayarinya

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

php Editor Banana Apabila menggunakan fail kunci JSON akaun perkhidmatan dalam aplikasi Go, anda mungkin menghadapi isu "Permintaan mempunyai bukti kelayakan pengesahan tidak sah". Masalah ini biasanya disebabkan oleh format atau kandungan fail kunci yang salah. Untuk menyelesaikan isu ini, pastikan fail kunci berada dalam format yang betul dan fail kunci mengandungi maklumat pengesahan yang betul. Juga cuba jana semula fail utama dan pastikan ia dikonfigurasikan dengan betul ke dalam aplikasi. Melalui kaedah ini, anda boleh menyelesaikan masalah "permintaan mempunyai bukti kelayakan pengesahan tidak sah" dan menggunakan fail kunci JSON akaun perkhidmatan secara normal.

Kandungan soalan

Saya sedang membangunkan aplikasi go pada projek gcp dan saya menggunakan perkhidmatan pengelogan awan google. Saya menghadapi masalah menjalankan apl kerana ia mengatakan bukti kelayakan pengesahan saya tidak sah apabila saya menggunakan kunci json akaun perkhidmatan.

Ini ialah coretan kod dengan ralat:

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)
    }
Salin selepas log masuk

Ini adalah definisi fungsi 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
}
Salin selepas log masuk

Saya mempunyai .env fail dengan kandungan berikut: google_application_credentials=json/path-to-json.json

Saya tidak tahu mengapa ia mengatakan token telah tamat tempoh walaupun ini adalah satu-satunya kunci json akaun perkhidmatan yang saya ada pada gcp dan mesin tempatan saya.

Penyelesaian

Anda boleh menjalankan gcloud auth application-default login dan pastikan anda menetapkannya kepada projek yang betul.

Semak googleapplicationscredentals sama ada kunci json yang sah ditetapkan dan sama ada pembolehubah persekitaran ditetapkan dengan betul, sila jalankan arahan berikut untuk menyemak

echo $google_application_credentials
Salin selepas log masuk

Jika arahan tidak mengembalikan laluan yang betul kepada kekunci json, anda boleh menetapkan pembolehubah persekitaran menggunakan arahan berikut:

export GOOGLE_APPLICATION_CREDENTIALS=/path/to/json/key.json
Salin selepas log masuk

Selepas mengesahkan bahawa kunci json adalah sah dan pembolehubah persekitaran ditetapkan dengan betul, anda sepatutnya boleh menjalankan aplikasi anda. Sebagai alternatif, anda boleh cuba memadamkan fail .env dan kemudian menggunakan kekunci json akaun perkhidmatan dan ia harus menjana semula token dan menjadikannya sah.

Penyelesaian masalah tambahandokumen a>untuk rujukan.

Atas ialah kandungan terperinci Mendapatkan 'Permintaan mempunyai bukti kelayakan pengesahan yang tidak sah' apabila menggunakan fail kunci json akaun perkhidmatan dalam aplikasi Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan