当前位置: 首页 > 面试题库 >

在Go中验证Google登录ID令牌

姬自强
2023-03-14
问题内容

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



 类似资料:
  • 我正在创建一个使用谷歌登录的FlutterAndroid应用程序。一旦登录,我就会收到加入和IDToken。我想使用这个令牌来验证我的后端,它使用django社会认证和 如果用户已经注册,请登录并返回授权,或 这可能吗?如果是的话,请在网上推荐任何文件,或者请解释我应该如何处理这个问题。

  • 本文向大家介绍firebase-authentication Google Plus登录身份验证,包括了firebase-authentication Google Plus登录身份验证的使用技巧和注意事项,需要的朋友参考一下 示例 使用Plus登录验证用户 onCreate onStart() 获取资料信息 使用Firebase进行身份验证, onActivityResult 登出      

  • 接口说明 验证是否登录 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /authcenter/api/login/v1.0.0/refreshPermissions 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN 响应字段说明 无 响应成功示

  • 接口说明 验证是否登录 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /authcenter/api/login/v1.0.0/refre

  • 错误: TypeError:无法读取未定义的LoginForm c:/reactjs/hello-world/src/components/accountbox/LoginForm.js的属性“state”:23 2023 value={this.state.input.email}^24 onchange={this.handlechange}25 class=“form-control”26

  • 问题内容: 我正在Google App Engine上开发应用程序。我在Google App Engine的后端使用Cloud Endpoints进行Android App之间的通信。Android客户端使用Firebase身份验证,并在每次调用Firebase令牌时发送Cloud Endpoints。 在Google App Engine中,我使用以下代码来验证Firebase令牌。我正在使用F