美文网首页
单点登录

单点登录

作者: wjing | 来源:发表于2016-04-12 09:27 被阅读126次

    这里说的 单点登录,是指,在一个地方登陆后,没退出之前,在其他地方没办法登录。

    自己的想法

    • 在user表中加一个if_login字段,0表示未登录,1表示已登录;
    • 每次登录时,检查if_login,如果为0,则正常登录,把if_login改为1;如果为1,则不能登录
    • if_login如何从1变为0,一用户手动logout,二关闭浏览器。还有一种情况是刷新,各浏览器监听关闭页面的方法不同;对unload beforeunload事件的处理也不同,导致客户端控制从1变为0,特别的麻烦

    借鉴别人的思路

    • 数据库和后端思路都还可以
    • 服务器端有一个定时执行的程序,来检查session中的用户信息是否存在,因为session在浏览器关闭后,会自动消失。

    浏览器关闭后,服务器端的session还会存在,在有效期内,还是需要前端来通知后端

    浏览器关闭后,user中的if_login要变为0

    需要考虑前端的兼容性。最后发现:
    chrome 刷新 beforeunload 发送
    chrome 刷新 unload 不发送
    chrome 关闭 beforeunload 发送
    chrome 关闭 unload 发送
    firefox 刷新 beforeunload 不发送
    firefox 刷新 unload 发送
    firefox 关闭 beforeunload 发送
    firefox 关闭 unload 不发送

    所以,在chrome中需要使用unload事件,在firefox中需要使用beforeunload事件。

    相关文章

      网友评论

          本文标题:单点登录

          本文链接:https://www.haomeiwen.com/subject/wjoilttx.html