16

我有一个使用 devise 进行身份验证的 rails 3 应用程序,并且想使用 javascript 查看用户是否已登录。最好的方法是什么?

4

2 回答 2

19

由于 Devise 基于 Warden,您可以使用 Warden 的回调设置一个额外的 cookie,该 cookie 将从 js 中可见(与仅服务器会话 cookie 不同),例如在您的 devise.rb 中:

  Warden::Manager.after_set_user do |user,auth,opts|
    auth.cookies[:signed_in] = 1
  end

  Warden::Manager.before_logout do |user,auth,opts|
    auth.cookies.delete :signed_in
  end
于 2012-12-24T17:49:43.233 回答
-2

看起来 Rails 将客户端上的会话存储在cookie中。

当您登录 ( console.log( document.cookies )) 时,我会检查您的应用程序中的 cookie,并查看您注销时存在的内容。

这样,您将轻松了解如何在客户端上检查您是否已连接。

于 2012-04-20T16:55:17.917 回答