我之前知道有关于我的主题的问题,我已阅读但没有帮助。
我已将以下代码放在config/initializers/devise.rb
config.skip_session_storage = [:disabled]
因此正常登录并且会话一直保持到浏览器打开,当浏览器关闭时会话被杀死。它要求在新的浏览器窗口中进行新的登录。
我想知道发生了什么事,保持skip_session_storage被禁用会有任何问题。将来我会使用支付网关,它会影响它吗?
答案 0 :(得分:0)
我面对同样的问题。要在浏览器关闭后让用户登录,您需要执行以下操作。包含在您的模型中:可记住(默认情况下应包括)
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
你的会话控制器应该是
class SessionsController < Devise::SessionsController
include Devise::Controllers::Rememberable
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_flashing_format?
sign_in(resource_name, resource)
#add remember me to remember user
remember_me resource
respond_with resource, location: after_sign_in_path_for(resource)
end
end
你可以看到那种方法记得我基本上做的工作。这里指向有关此https://github.com/plataformatec/devise/wiki/Omniauthable,-sign-out-action-and-rememberable
的官方文档这些东西是如何运作的?基本上,当您在用户端调用remember_me设置cookie时,您应该在Chrome / Firefox / Safari检查器中看到类似remember_user_token(我假设您的身份验证模型是用户)的内容。然后一切都应该有效希望它有所帮助