在Go中验证Google登录ID令牌

我正在寻找一种方法来验证带有Go后端服务器项目的Android的Google登录的ID令牌。

在Go中使用Google API客户端库来验证ID令牌的等效功能是什么?

从此页面的“ 使用Google API客户端库” 部分

https://developers.google.com/identity/sign-in/android/backend-auth#using-a-

google-api-client-library

有Java和Python示例,并且有用于通过PHP,Node.js和其他语言的Google API客户端库验证ID令牌的链接。我检查了我的目标语言;到这里

https://github.com/google/google-api-go-

client/blob/master/GettingStarted.md

但是,我发现没有等效的函数可以像Java和Python示例中那样验证令牌。Go中有任何功能可以做到这一点吗?

我不想使用令牌信息端点

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

因为它会引入潜在的延迟和网络错误。我希望使用Google API客户端库。请引导我到哪里去研究。

回答:

这是我使用https://github.com/google/google-api-go-

client库完成的方式:

import (

"google.golang.org/api/oauth2/v2"

"net/http"

)

var httpClient = &http.Client{}

func verifyIdToken(idToken string) (*oauth2.Tokeninfo, error) {

oauth2Service, err := oauth2.New(httpClient)

tokenInfoCall := oauth2Service.Tokeninfo()

tokenInfoCall.IdToken(idToken)

tokenInfo, err := tokenInfoCall.Do()

if err != nil {

return nil, err

}

return tokenInfo, nil

}

oauth2.Tokeninfo对象具有有关用户的信息。请注意,这是对https://www.googleapis.com/oauth2/v2/tokeninfo的调用,我认为所有Google

API客户端库都是在后台进行此http调用的。

以上是 在Go中验证Google登录ID令牌 的全部内容, 来源链接: utcz.com/qa/425017.html

回到顶部