gpt4 book ai didi

javascript - 去解析JWT : error verifying ID token: illegal base64 data at input byte 0

转载 作者:IT王子 更新时间:2023-10-29 02:28:57 27 4
gpt4 key购买 nike

我在 GET 请求的请求 header 中将 Firebase JWT 添加到我的 Google App Engine Go 服务。这是 JavaScript:

const response = await fetch(
'https://some-app.appspot.com/_ah/data', {
method: 'get',
headers: {
'Authorization': 'Bearer ' + await Component.fetchJWT()
}
});

在端点托管的 my Go 服务上,收到了请求。但是,抛出错误:

验证 ID token 时出错:输入字节 0 处的 base64 数据非法

这是我处理 JWT 的方式:

func (ma *myapp) SomeHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
reqToken := r.Header.Get("Authorization")
splitToken := strings.Split(reqToken, "Bearer")
reqToken = splitToken[1]
fmt.Println(reqToken) // Prints the token correctly

lib.VerifyIDToken(ma.fbapp, reqToken) // Error is thrown in this function

enc := json.NewEncoder(w)
err := enc.Encode(SomeData)

if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}

token 函数是这样的:

func VerifyIDToken(app *firebase.App, idToken string) *auth.Token {
// [START verify_id_token]
client, err := app.Auth(context.Background())
if err != nil {
log.Fatalf("error getting Auth client: %v\n", err)
}

token, err := client.VerifyIDToken(idToken)
if err != nil {
log.Fatalf("error verifying ID token: %v\n", err) // Error thrown here
}

log.Printf("Verified ID token: %v\n", token)
// [END verify_id_token]

return token
}

打印出 token 时,我觉得没问题。但是,我从请求 header 中检索它的方法是错误的吗?看起来是这样?

最佳答案

删除授权 header 拆分中的前导空格

strings.Split(reqToken, "Bearer ")

关于javascript - 去解析JWT : error verifying ID token: illegal base64 data at input byte 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48169033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com