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

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

在 go 中驗(yàn)證 google 聊天機(jī)器人消息

在 go 中驗(yàn)證 google 聊天機(jī)器人消息

Go
Qyouu 2023-07-17 17:54:27
我正在嘗試創(chuàng)建一個(gè)谷歌聊天機(jī)器人,它通過谷歌聊天接收一些帖子并將數(shù)據(jù)發(fā)送到電子表格。所有這些都工作正常,但我正在努力進(jìn)行身份驗(yàn)證。我按照此處提供的文檔并嘗試將功能翻譯為Go。不幸的是我慘敗了。;-D我做了什么?我用來"github.com/coreos/go-oidc"運(yùn)行驗(yàn)證。像這樣設(shè)置驗(yàn)證器:const (    audience            string = "my-project-id"    publicCertUrlPrefix string = "https://www.googleapis.com/service_accounts/v1/metadata/x509/"    chatIssuer          string = "chat@system.gserviceaccount.com")func init() {    context = cnx.Background()    keySet := oidc.NewRemoteKeySet(context, publicCertUrlPrefix+chatIssuer)    config := &oidc.Config{        SkipClientIDCheck: true,        ClientID:          audience,    }    verifier = oidc.NewVerifier(chatIssuer, keySet, config)}并嘗試通過執(zhí)行以下操作來運(yùn)行驗(yàn)證:func VerifyToken(next http.Handler) http.Handler {    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {        // no authorization for health endpoint        if r.URL.Path == "/health" {            next.ServeHTTP(w, r)            return        }        authHeader := r.Header.Get("Authorization")        if authHeader == "" {            logger.Debug("No authorization header is provided")            http.Error(w, "Forbidden", http.StatusForbidden)            return        }        authHeaderParts := strings.Fields(authHeader)        if len(authHeaderParts) != 2 || strings.ToLower(authHeaderParts[0]) != "bearer" {            logger.Debug("Authorization header is not valid")            http.Error(w, "Authorization header format must be Bearer {token}", http.StatusForbidden)            return        }        token := authHeaderParts[1]        if _, e := verifier.Verify(context, token); e != nil {            logger.Debug("Invalid token: ", e.Error())            http.Error(w, "Invalid token", http.StatusUnauthorized)            return        }        next.ServeHTTP(w, r)    })}不幸的是,此操作失敗并出現(xiàn)以下錯誤:Invalid token: failed to verify signature: failed to verify id token signature知道我做錯了什么嗎?最好的
查看完整描述

1 回答

?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

因此,我們通過為密鑰設(shè)置正確的 URL 來使其工作,因?yàn)槲覀冃枰粋€(gè)jwt令牌,該 URL 必須是:https://www.googleapis.com/service_accounts/v1/jwk/。


const (

    audience            string = "my-project-id"

    jwtURL              string = "https://www.googleapis.com/service_accounts/v1/jwk/"

    chatIssuer          string = "chat@system.gserviceaccount.com"

)


func init() {

    context = cnx.Background()

    keySet := oidc.NewRemoteKeySet(context, jwtURL+chatIssuer)

    config := &oidc.Config{

        SkipClientIDCheck: true,

        ClientID:          audience,

    }

    verifier = oidc.NewVerifier(chatIssuer, keySet, config)

}


查看完整回答
反對 回復(fù) 2023-07-17
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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