我正在寻找一种方法来验证带有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调用的。