【发布时间】:2013-07-22 02:19:27
【问题描述】:
我想在用户使用 Devise 注销时使会话无效,当用户注销时我有一个回调要捕获,以更好地防止会话劫持。
class ApplicationController < ActionController::Base
def sign_out(*args)
super(*args)
reset_session
end
end
我的理解是,这会删除存储在服务器端的会话信息,从而使其无效。
但是,我仍然可以使用退出前获得的会话 ID 登录。 我误解了它是如何工作的吗?我只想使这个会话无效,而不是全部。
我正在使用 session_store 的默认值。
【问题讨论】:
-
你从哪里得到
session_id?另外,您还添加了哪些其他特定于会话的自定义代码? -
我的印象是 reset_session 不需要获取 session_id,我没有添加任何会影响会话值的自定义代码。
标签: ruby-on-rails session devise