[英]How to validate the firebase jwt token in my google cloud function?
用户通过在前端进行身份验证
const googleAuthProvider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(googleAuthProvider);
之后我用 firebase 调用云 function:
const nodeStateCall = functions.httpsCallable('myFunction');
nodeStateCall().then(...);
这个工作没有任何问题,我在我的 go function 中收到了 jwt 令牌。
我尝试了许多不同的变体来验证此令牌。 我现在使用的 function 是来自google.golang.org/api/idtoken
pacakge 的idtoken.Validate()
。
我的function:
func verifyIdToken(idToken string)(tokenInfo *idtoken.Payload, err error) {
log.Print("running verify Token")
splitToken := strings.Split(idToken, "Bearer ")[1]
log.Print("split Token:"+splitToken)
tokenInfo, err = idtoken.Validate(context.Background(),splitToken,"MYAUDIENCE")
if err != nil {
log.Print("error from tokenInfoCall.Do()")
log.Print(err)
return nil, err
}
log.Print("Finished verify token.")
return tokenInfo, nil
}
但是当我发送令牌时,我一直收到“无效值”。
我还尝试了 oauth2 服务:
oauth2Service, err := oauth2.NewService(context.Background())
tokenInfoCall := oauth2Service.Tokeninfo()
tokenInfoCall.IdToken(splitToken)
tokenInfo, err := tokenInfoCall.Do()
这也没有用。
我需要做什么来验证我的 go function 中的 firebase jwt 令牌?
因为您使用的是 firebase 服务,所以您需要使用它来验证您的令牌:
请注意,您应该在同一个项目中设置 function,这样库才能正确查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.