使用 Ruby 验证 Google 登录访问令牌的最简洁方法

Posted

技术标签:

【中文标题】使用 Ruby 验证 Google 登录访问令牌的最简洁方法【英文标题】:Most concise way to validate Google sign-in access token using Ruby 【发布时间】:2018-02-11 15:38:41 【问题描述】:

我正在构建一个使用 Rails 后端的 React 应用程序。

我正在使用 Google 登录,并在客户端完成大部分工作,并且流程正常,以便成功登录并在客户端上获取访问令牌。

我想执行this step,在服务器上验证令牌,否则我只是相信客户端在这一点上断言用户的身份。这里有几个例子,但没有一个在 Ruby 中。

我知道我可以简单地回退到使用 tokeninfo 端点 (https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=foo),但会将其视为最后的手段。

有各种涉及 Google 登录的 Ruby OAuth2 流程示例,但我正在寻找的是简单地验证服务器上的访问令牌的基本步骤,给定客户端 ID 和 Google 的公钥(我相信这是适当的数据)。

【问题讨论】:

【参考方案1】:

好吧,看来这真的不存在,所以我自己写的。

使用 Python 和 Node.js 实现作为指导,我为此任务创作了一个 Ruby gem。

https://github.com/hamza/google-auth-token-validator-ruby

它是全新的,所以我欢迎错误报告、功能请求和 PR。

如果这对任何人有帮助,请告诉我。

【讨论】:

以上是关于使用 Ruby 验证 Google 登录访问令牌的最简洁方法的主要内容,如果未能解决你的问题,请参考以下文章

在 Ruby 中验证 Google ID 令牌的完整性

Laravel 使用 Socialite(google、facebook 等)登录并创建我自己的应用程序的访问令牌

无需身份验证令牌即可访问 Google 电子表格 API

AWS身份池Google登录

在 Go 中验证 Google 登录 ID 令牌

在 Go 中验证 Google 登录 ID 令牌