【问题标题】:Best place to store access tokens for rails application为 Rails 应用程序存储访问令牌的最佳位置
【发布时间】:2016-05-12 18:55:14
【问题描述】:

我已经搜索了一段时间,但似乎找不到一篇文章说明存储访问令牌的最佳实践。抱歉,这可能是重复的...

显然我希望它是持久的,所以我很自然地会考虑将它存储在数据库或用户的 cookie 中。但是我看到有些人说要将它存储在 memcache 或 session 中,但我真的不知道他们的意思。

【问题讨论】:

  • 你找到解决办法了吗?

标签: ruby-on-rails oauth


【解决方案1】:

如果您将会话存储到 cookie,最好使用默认的 ActionController::Session::CookieStore,因为它是经过加密签名和加密的。

将其存储在数据库中可能没问题,但这需要数据库访问权限才能查看用户是否经过身份验证,这可能会导致性能问题。 Memcache 是一个不错的选择,因为作为内存中键值存储引擎可以提高性能。

参考here

【讨论】:

  • 但我认为session 哈希不是持久的。一旦用户关闭他们的浏览器,我们就会失去任何形式的身份证明。
  • 会话存储在服务器端,因此它们不依赖于浏览器。会话 id 存储在用户浏览器上的 cookie 中,只要用户不删除它或取决于 cookie 到期日期,它就会一直存在。请参阅here 以获取参考
  • “有一个例外,那就是默认和推荐的会话存储 - CookieStore - 它将所有会话数据存储在 cookie 本身中(如果需要,ID 仍然可供您使用)”看来客户端默认存储信息而不是服务器....
  • 这一行让我更加困惑“#使用数据库进行会话而不是基于cookie的默认值,#不应该用于存储高度机密的信息#(使用“创建会话表” rails g active_record:session_migration") # Rails.application.config.session_store :active_record_store" 那么他们是不是想说不应该在服务器端存储敏感数据???
  • 该行声明会话存储在 cookie 中,但它经过签名和加密,非常安全。你还有什么困惑?
猜你喜欢
  • 2016-04-25
  • 2021-04-02
  • 1970-01-01
  • 2014-11-20
  • 2018-08-05
  • 2015-12-14
  • 2014-01-05
  • 1970-01-01
  • 2012-06-04
相关资源
最近更新 更多