在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