首页  >  文章  >  后端开发  >  如何在 Go 中验证 Google 登录 ID 令牌?

如何在 Go 中验证 Google 登录 ID 令牌?

Susan Sarandon
Susan Sarandon原创
2024-11-07 14:18:02947浏览

How to Verify Google Sign-In ID Tokens in Go?

在 Go 中验证 Google 登录 ID 令牌

寻求使用 Go 后端服务器项目验证 Google 登录 ID 令牌,您遇到了一个挑战:找到与 Java 和 Python 的 Google API 客户端库示例等效的函数。虽然该库有多种语言的实现,但 Go 文档似乎省略了 ID 令牌验证的特定函数。

首选解决方案

幸运的是,该解决方案Go 语言简单明了。使用 Go 官方 Google API 客户端库:

go get google.golang.org/api/idtoken

安装库后,以下代码片段提供单行验证:

payload, err := idtoken.Validate(context.Background(), tokenString, audience)
if err != nil {
    panic(err)
}
fmt.Print(payload.Claims)

将 tokenString 替换为实际的您希望验证的 ID 令牌,以及您应用程序的客户端 ID。

示例输出

成功验证后,您将收到包含以下声明的有效负载对象:

  • aud:您的 Web 应用程序的客户端 ID
  • azp:您的 Android 应用程序的客户端 ID
  • email:经过身份验证的用户的电子邮件
  • email_verified:True或 false
  • exp:令牌过期时间戳
  • family_name:经过身份验证的用户的姓氏
  • given_name:经过身份验证的用户的名字
  • iat:在时间戳发行的令牌
  • iss:令牌的颁发者(accounts.google.com 或 https://accounts.google.com)
  • 区域设置:经过身份验证的用户的区域设置
  • 名称:经过身份验证的用户的全名
  • 图片:经过身份验证的用户的个人资料图片 URL
  • sub:经过身份验证的用户的 Google 唯一帐户 ID

通过使用此方法,您可以有效地在您的 Go 后端项目中验证 Google 登录 ID 令牌,提供安全的身份验证机制,同时最大限度地减少与使用令牌信息端点相关的延迟和网络问题。

以上是如何在 Go 中验证 Google 登录 ID 令牌?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn