目前在我的rails应用程序中,我存储了会话和cookies,以便用户在重新访问网站时自动重新登录。现在,如果用户在另一台设备(例如他们的平板电脑)上登录该站点,原始设备的会话将被销毁,并且该用户在返回该设备时将不得不重新登录。
我想要的是允许用户登录他们的手机,平板电脑和计算机,而无需在每台设备上重新登录。我希望这是有道理的......
以下是我的用户模型中的一些会话方法
def User.new_remember_token
SecureRandom.urlsafe_base64
end
def User.encrypt(token)
Digest::SHA1.hexdigest(token.to_s)
end
这是我的SessionsController的创建动作
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
...
else
...
end
感谢你看一下。
答案 0 :(得分:3)
如果您使用服务器端会话存储,这对我来说才有意义。如果你使用Rails'默认CookieStore,登录绑定并且每个设备都是唯一的。在平板电脑上登录或注销不会影响在桌面上并行运行的单独会话。