【问题标题】:Automatically log user out on browser close with remember me unchecked - devise, rails 4在未选中记住我的情况下自动在浏览器关闭时注销用户 - 设计,rails 4
【发布时间】:2015-12-05 22:09:26
【问题描述】:

我正在使用导轨和设计。我希望用户在浏览器关闭时自动并立即注销。我理解它的方式,在rails中,会话方法生成的cookie应该在浏览器关闭时立即过期。如果有的话,我根本找不到设计在哪里进行会话。我看到有一个可超时的选项,但我不希望那样。如果没有选中记住我,我希望用户在浏览器关闭时必须再次登录。

如何获得此功能?

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    执行this 之类的操作并在浏览器关闭之前删除 cookie:

    <% if current_user.present? && !current_user.remember_me %>
    <script>
    window.onbeforeunload = closingCode;
    function closingCode(){
       document.cookie = '_' + rails_app_name_here + '_session' +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
       return null;
    }
    </script>
    <% end %>
    

    如果你愿意,你可以把它放在你的应用程序布局中,放在结束体之前。

    如果你做不到这一点,你可能是 SOL。

    【讨论】:

    • 我想知道是否应该禁用 devise :rememberable 并自己处理会话和 cookie。你怎么看?
    • 嗯,我不确定您自己这样做会获得什么。我认为 devise 会生成一个一致命名的 cookie,您需要做的就是删除它。
    • 我会把你上面粘贴的代码放在哪里?我也很难找到 cookie 的名称。感谢您的帮助。
    • 以上没有用。还有其他想法吗?也许cookie的名称不正确。如何找到需要设置过期日期的 cookie 的名称?
    • 使用 chrome 检查器查看登录时创建的 cookie。
    猜你喜欢
    • 2015-07-21
    • 1970-01-01
    • 2012-04-24
    • 2015-08-22
    • 2011-01-11
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多