zoukankan      html  css  js  c++  java
  • 使用ajax登录的时候设置session,刷新页面后session丢失

    session是什么?

    直译为“会话”,是服务端为跟踪用户而制定的一种机制,即每一个用户访问服务端的时候都会生成一个唯一的session标识,这个标识让服务端知道是哪一个用户在访问。而每一次创建session的时候,实际上服务端都会对客户端写入一个cookie标识,这个cookie标识用于下次请求的时候认证已存在的session,告诉服务端,还是这个用户在访问。

    但是session还有一种机制:URL重写,即每一次访问的时候都会在URL后面加上一个诸如sid=xxxx的参数用来跟踪session,服务端以此来识别用户,只要当前session被创建过了,那么就能跟sid的值对应上从而成功识别用户

    问题来了!

    还是ajax惹的祸

    因为使用ajax登录,服务端无法在生成session的时候为客户端写入cookie,所以刷新页面的时候无法带入cookie去访问服务端,所以导致session认证失败(就像这个用户还是第一次访问的样子),并且因为是ajax访问,访问的地址是:localhost:8080/login所以真正被添加sid的地址不是首页,那么此时刷新的话也就无法通过session来获取了。

    针对这个问题,我的方法是(比较挫)

    1.在后台声明全局变量theSession=null

    2.当登录成功后将session值保存在theSession中

    3.前台做一个用户认证的方法lookUser(),即每次刷新页面的时候都访问后台“/”路由,判断theSession是否存在,如果存在则证明已经登录成功,那么返回登录信息即可。

    记录下来,以备不时之需

  • 相关阅读:
    自动控制基础MATLAB 2
    钽电容和瓷片电容的对比
    自动控制原理基础 matlab 1
    Altium使用总结1
    Altium 各个层的作用
    C语言联合体的灵活运用
    windows清除日志
    Lingo 优化实例 出版社问题
    Lingo 0-1规划
    用CMD分类
  • 原文地址:https://www.cnblogs.com/sky903700252/p/7846575.html
Copyright © 2011-2022 走看看