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

Posted

技术标签:

【中文标题】在 Ruby 中验证 Google ID 令牌的完整性【英文标题】:Verify the integrity of Google ID token in Ruby 【发布时间】:2015-10-02 02:42:24 【问题描述】:

我正在将 Google 登录功能集成到 Rails 驱动的网站。我正在关注https://developers.google.com/identity/sign-in/web/backend-auth 的指南,但遇到了一些问题。

主要的挂断是验证 ID 令牌的完整性 段落。它概述了验证 JWT 的几个步骤,然后指出:

我们强烈建议您使用适用于您平台的 Google API 客户端库,或者调用我们的tokeninfo 验证端点,而不是编写您自己的代码来执行这些验证步骤。

我一直在使用tokeninfo 端点进行调试,但文档指出:

[tokeninfo 端点] 仅适用于每月活跃用户少于 100 个的部署,以及用于调试和提供信息的目的。

...

使用其中一个 Google API 客户端库是在生产环境中验证 Google ID 令牌的推荐方法。

对于 Java,Google API 客户端库包含一个可以验证 id 令牌的 GoogleIdTokenVerifier 对象。

对于 Python,提供了一个 verify_id_token 函数。

我已经在文档中搜索了 Google Client API Ruby gem(目前处于 alpha 阶段)以及 google-auth-library-ruby gem,但找不到等效的功能。

Ruby 是否有类似的功能?


更新:

看来https://code.google.com/p/google-id-token/ 可能会这样做;但是,该项目自 2014 年以来一直没有更新。

我正在寻找一个维护项目,最好直接来自 Google。

【问题讨论】:

【参考方案1】:

存储库已移至此处:https://github.com/google/google-id-token

看起来正在积极维护。

【讨论】:

以上是关于在 Ruby 中验证 Google ID 令牌的完整性的主要内容,如果未能解决你的问题,请参考以下文章

在 Go 中验证 Google 登录 ID 令牌

在 Go 中验证 Google 登录 ID 令牌

在 PHP 中验证 ID 令牌时出错 - Google API

Google 登录 - 访问令牌、身份验证令牌和 JWT ID 令牌之间的区别

使用 Google 登录 - 我们如何在 .net 中验证 Google ID 令牌服务器端?缺少代码示例,库似乎已弃用

如何使用 google-api-ruby-client People API 传递 OAuth 令牌?