与 2 个 Rails 应用程序共享 OAuth 令牌

Posted

技术标签:

【中文标题】与 2 个 Rails 应用程序共享 OAuth 令牌【英文标题】:Sharing an OAuth token with 2 Rails Applications 【发布时间】:2012-02-25 16:39:50 【问题描述】:

我有 2 个 Rails 应用程序都需要访问第 3 方 API。只有一个应用程序在我的控制之下,另一个是独立的并且超出我的控制范围。另一个应用程序使用 OAuth 获取令牌并处理请求。我想以某种方式捎带该应用程序的 OAuth 令牌,但我需要一些方法将其安全地传输到我的应用程序。我已经同意单独的应用程序,所以这不是问题,假设我们可以找到一个安全且尽可能轻松的解决方案。

最大的问题是这两个应用程序都在同一个页面上(一个显示整个页面,而我控制的一个只负责一些 AJAX 请求)。这就是为什么我不能只授权第二次,我的 AJAX-only 应用没有登录界面,只需要站在主应用的肩膀上。

目前,我想不出不涉及在 html 源代码中传递不安全令牌的解决方案,这会使我的 AJAX 应用程序容易受到攻击。另外,我想避免 Rails 应用程序必须创建路由以通过其服务器汇集我的 AJAX 请求。

任何关于如何让我的仅 AJAX Rails 应用程序利用主要 Rails 应用程序的 OAuth 的建议将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

令牌的所有者可以为您创建一个只读数据库帐户吗?

也许,网站的所有者,您也可以使用 OAuth 策略? (这可能会产生大量开销,但会确保令牌的安全性)

【讨论】:

以上是关于与 2 个 Rails 应用程序共享 OAuth 令牌的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 应用程序中使用 Omniauth-oauth2 刷新令牌

Rails — 签署 OAuth1 请求

Rails Google Oauth2 - 项目中未使用旧版 People API

OAuth2 与多个网关实例共享主体对象

OAuth::Unauthorized 401 Unauthorized for omniauth-twitter in rails

如何在 Rails OAuth 请求中设置参数?