ruby-on-rails - Devise gem 中的 'skip session storage' 是什么意思?

标签 ruby-on-rails authentication devise

我正在阅读 Devise gem 的初始化文件 (config/initializers/deviser.rb) 并且很难理解这部分。

# By default Devise will store the user in session. You can skip storage for
# :http_auth and :token_auth by adding those symbols to the array below.
# Notice that if you are skipping storage for all authentication paths, you
# may want to disable generating routes to Devise's sessions controller by
# passing :skip => :sessions to `devise_for` in your config/routes.rb

config.skip_session_storage = [:http_auth]

我正在查看的原因是因为我正在尝试使用基于 api 的 token 身份验证,在这种情况下,我需要将该配置行更改为:
config.skip_session_storage = [:http_auth, :token_auth]

谁能解释一下评论的意思?

最佳答案

很简单,它告诉 Devise 不要在 session 中存储用户。这是它的另一种解释:

skip_session_storage+:默认情况下,Devise 会将用户存储在 session 中。您可以通过将值附加到数组来跳过 http 和 token 身份验证的存储::skip_session_storage => [:token_auth] 或 :skip_session_storage => [:http_auth, :token_auth],默认设置为 skip_session_storage => [:http_auth]。

Devise::Models::Authenticatable

出于您的意图和目的,我将使用 Warden/Devise 禁用 session 缓存;我相信它会干扰某些 API(尽管不要相信我的话)。希望有帮助。

关于ruby-on-rails - Devise gem 中的 'skip session storage' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298727/

相关文章:

ruby - 用户中的 LoadError::OmniauthCallbacksController#facebook - Rails 4

ruby-on-rails - 如何确保模型始终使用事务和锁(在 Rails 中)?

ruby-on-rails - 如何解决弃用警告 "Method to_hash is deprecated and will be removed in Rails 5.1"

c# - 使用 WebRequest 和 WebResponse 登录 Https 网站不起作用 C#

iphone - 在 iOS 应用程序中使用 wordpress 用户帐户

ruby-on-rails - 使用 Ruby on Rails 设计 - 强制用户在首次登录时更改密码

ruby-on-rails - 根据用户的选择在设计中设置身份验证选项

ruby-on-rails - 在 ruby​​ on rails 中从另一个模型访问数据

ruby-on-rails - 将现有应用程序的 Sqlite3 切换到 PostgreSQL

c# - Owin Authentication and claims in asp.net 如何访问用户数据