zoukankan      html  css  js  c++  java
  • 关于登录的会话控制, 终极解决方案

    登录是用cookie还是session实现,一直有争议,普遍认为session更安全,可是有些功能,用cookie最方便也最高效,比如“记住我一周”。
     
    cookie还是session,我的答案是两者共用,具体方案是:
    1 首先,我们知道,登录的账号跟密码,是用户提供的。我们顾忌使用cookie主要是担心用户修改cookie的值,然后获得不应该获得的权限。既然账号密码是用户自己的提供的,就不怕ta修改了,所以,账号密码这两个东西可以存到cookie上面去。
    2 服务端程序的权限判断还是使用session的值,cookie只存账号密码,作自动登录用。比如浏览器被关掉了,重新打开的时候,就用到了cookie里面的账号密码来自动登录,而不需要用户输入。
     
    小结:关键点在于cookie只存放账号密码,用作自动登录。
     
    -- 案例:
    我使用memcache来存储session,使用session来控制登录,运行的过程中总是会出现一些问题:
    1 memcache的过期时间问题,导致不知道30分钟还是一个小时,登录就掉线一次。
    2 memcache的设计本就是针对缓存的,所以是不严谨的,偶尔还会丢数据的,这样又掉线了。因为这个问题,网上有很多文章说不要使用memcache来存储session。
     
    后面我引入了cookie的解决方案,使用cookie缓存了账号密码,程序会在session失效是时候判断cookie,如果cookie里面存在账号密码,就会自动登录,让用户感觉不到掉线。存放账号密码的cookie,我设置的过期时间是24小时。
  • 相关阅读:
    vue 富文本编译器 vue-quill-editor
    vue-拖拽的使用awe-dnd
    Dapper是什么?
    如何运用领域驱动设计
    面试官问我MySQL索引,我
    MySQL:你知道什么是覆盖索引吗?
    mysql覆盖索引与回表
    C#.NET 字符串转数组,数组转字符串
    MYSQL如何让主键使用BTREE索引
    MySQL大表优化方案 Mysql的row_format(fixed与dynamic)
  • 原文地址:https://www.cnblogs.com/lihuobao/p/5201863.html
Copyright © 2011-2022 走看看