登录
首页 >  Golang >  Go问答

在 Go 中验证 Google 登录 ID 令牌

来源:Golang技术栈

时间:2023-05-01 16:07:05 376浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《在 Go 中验证 Google 登录 ID 令牌》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到golang等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

我正在寻找使用 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](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](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 调用。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>