Rails - 让用户从多个设备登录而不会破坏会话

时间:2013-12-14 19:43:42

标签: ruby-on-rails ruby session ruby-on-rails-4

目前在我的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

感谢你看一下。

1 个答案:

答案 0 :(得分:3)

如果您使用服务器端会话存储,这对我来说才有意义。如果你使用Rails'默认CookieStore,登录绑定并且每个设备都是唯一的。在平板电脑上登录或注销不会影响在桌面上并行运行的单独会话。