【发布时间】:2016-10-12 16:44:24
【问题描述】:
大家好,目前我在存储 OAuth::AccessToken 的对象时遇到了问题。首先让我描述一下情况。
我正在开发 rails 4 应用程序,我正在使用/使用另一个站点的 API,例如 example.com,它使用 3-legged oauth 授权(与 twitter 相同)。为了实现这个功能,我使用了这个link 并实现了相同的功能。
现在我可以打开 example.com 之间的通信通道,我的应用程序也可以使用他们的 API。
这是我的示例实现
创建消费者
consumer = OAuth::Consumer.new API_KEY,
API_SECRET,
{
site: SITE_URL,
header: { ACCEPT_HEADERS },
http_method: :get,
request_token_url: request_token_uri,
access_token_url: access_token_uri,
authorize_url: authorizerequest_token_uri
}
获取请求令牌
request_token = consumer.get_request_token({}, CALLBACK_URL)
转到授权网址并获取访问令牌验证器'
request_token.authorize_url
verifier = gets.chomp
获取访问令牌
access_token = request_token.get_access_token(oauth_verifier: verifier)
现在我在整个应用程序中使用这个 access_token(OAuth::AccessToken 的对象)。 (用于获取、发布 API 调用)。由于我必须在应用程序中使用,我已将此对象存储到会话中。
session[:access_token] = access_token
但有时我会收到 cookie 溢出错误。所以我有以下疑问。
- 存储此对象的好方法是什么? (DB 除外)。
- 我应该实现中间件吗?
- 或者有没有其他方法可以实现相同类型的功能。
【问题讨论】:
-
访问令牌有多少字节?
-
你为什么不想使用数据库?您必须将这些数据存储在某个地方。
标签: ruby-on-rails oauth