第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Golang 中獲取谷歌云服務帳戶的訪問令牌?

在 Golang 中獲取谷歌云服務帳戶的訪問令牌?

Go
犯罪嫌疑人X 2022-12-13 16:31:35
我在谷歌云上使用服務帳戶。出于某種原因,我想在 golang 中以編程方式獲取訪問令牌。我可以gcloud auth application-default print-access-token在命令行上做。谷歌有一個圖書館似乎可以讓我獲得令牌。這是我嘗試使用它的方法:    credentials, err := auth.FindDefaultCredentials(ctx)    if err == nil {        glog.Infof("found default credentials. %v", credentials)        token, err2 := credentials.TokenSource.Token()        fmt.Printf("token: %v, err: %v", token, err2)        if err2 != nil {            return nil, err2        }但是,我收到一條錯誤消息token: <nil>, err: oauth2: cannot fetch token: 400 Bad Request。我已經GOOGLE_APPLICATION_CREDENTIALS定義了 env 變量并指向 json 文件。
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

按原樣運行代碼,返回錯誤:


Invalid OAuth scope or ID token audience provided

我從Google 的 OAuth 范圍添加了 catch-all Cloud Platform 可寫范圍:


https://www.googleapis.com/auth/cloud-platform

這樣做,似乎有效。見下文:


package main


import (

    "context"

    "log"


    "golang.org/x/oauth2"

    auth "golang.org/x/oauth2/google"

)


func main() {

    var token *oauth2.Token

    ctx := context.Background()

    scopes := []string{

        "https://www.googleapis.com/auth/cloud-platform",

    }

    credentials, err := auth.FindDefaultCredentials(ctx, scopes...)

    if err == nil {

        log.Printf("found default credentials. %v", credentials)

        token, err = credentials.TokenSource.Token()

        log.Printf("token: %v, err: %v", token, err)

        if err != nil {

            log.Print(err)

        }

    }

}

我最近在使用這個庫時遇到了一些挑戰(zhàn)(訪問需要 JWT 受眾的 Cloud Run 服務)。在朋友的推薦下,我改用了google.golang.org/api/idtoken。API 非常相似。


查看完整回答
反對 回復 2022-12-13
  • 1 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號