Rails 关于 Devise 控制用户退出

moliliang · 2015年02月03日 · 最后由 moliliang 回复于 2015年02月04日 · 2715 次阅读

大家好。。碰到一个问题。。 就是我想在后台让某个用户退出(不经过数据库,就是..不是根据某个特定的字段来判断用户是否退出)。

或者说,某个用户正在网站上,我想让他退出(用户刷新后,就退出网站了)。

直接调用 sign_out user 似乎不行。。。

想删除用户 cookie 关联的 session,又找不到这个 session 保存在哪里……

蛋好痛。。。

user 中加入 forced_out 属性,默认 false,强制退出时更新为 true

在 application controller 中加入

before_action :check_user

def check_user
  redirect_to destroy_user_session_path if user_signed_in? && current_user.forced_out?
end

注:手敲未测

@heylonj 啊~谢谢,如果要经过数据库的话,其实就很好办。。可就是不想经过数据库嘛。。。

#2 楼 @moliliang

devise 使用了 warden, 具体 lz 可以去看看源码。

#3 楼 @heylonj 嗯,有注意到~~~ 但是没看到如何操作呢。。。看看先

moliliang 关闭了讨论。 09月20日 11:46
需要 登录 后方可回复, 如果你还没有账号请 注册新账号