我正在寻找使用 Go 后端服务器项目为 Android 的 Google 登录验证 ID token 的方法。
在 Go 中使用 Google API 客户端库验证 ID token 的等效函数是什么?
从这个关于使用 Google API 客户端库部分的页面
有 Java 和 Python 示例,还有用于使用适用于 PHP、Node.js 和其他语言的 Google API 客户端库验证 ID token 的链接。我检查了我的目标语言;去这里
https://github.com/google/google-api-go-client/blob/master/GettingStarted.md
但是,我发现没有像 Java 和 Python 示例中那样用于验证 token 的等效函数。 Go 中有做这种事情的功能吗?
我不想使用 token 信息端点
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 调用。
关于android - 在 Go 中验证 Google 登录 ID token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716117/