美文网首页
PHP处理用户会话持久化

PHP处理用户会话持久化

作者: 无聊的电风扇 | 来源:发表于2019-04-18 09:47 被阅读0次

不知道大家和前台合作的时候,用户关键信息,比如ID是如何传递的。
有的是放在header头里,有的直接明文参数传递,但是思路不应该是这样的,用户等关键数据都应该存储在服务端,而后每个需要用户信息的接口,都去判断是否登录就OK了。
正常情况下用户登录之后的信息,是保存在session里的,但是这样就会有两个问题:
第一是session有效期是固定的,有可能 用户在操作时,持续玩了很久,再去请求需要用户信息的接口,会发现是未登录状态,也就是session中信息已过期。
第二是,前台在用户登录后,一般会保存一些基本信息在本地,这样进程杀死,再进来,默认还是登录的,但其实请求头里的sessionid已经改变,对应session里是没有这个用户的信息的,就会导致后续很多操作失效。
这时候我们配合前台,做一个最简单的会话持久化处理:
在用户初次请求接口时,前台获取到header头里的sessionid,PHP的叫PHPSESSID,然后保存在本地,之后的所有请求,都把header头里的sessid修改为初次保存的那个。这样服务端就可以认为一直是这个用户在操作,所以就可以在用户登录的时候,把这个sessid和对应的用户信息保存在表中,退出登录再删除就OK了。
而后在必要接口,延长session有效时间,这样最简单的持久化就OK了。
在用户请求时,看session有没有对应用户信息,如果没有就用这个sessid去表里查一下,而后把用户信息存入session,模拟一个登录,这样服务器挂了重启,在操作的用户也能很大程度上减少影响,并且可以适当减轻服务器压力。


image.png
image.png

相关文章

  • PHP处理用户会话持久化

    不知道大家和前台合作的时候,用户关键信息,比如ID是如何传递的。有的是放在header头里,有的直接明文参数传递,...

  • php会话处理分析

    在PHP中会话处理是一个很重要的概念,它允许用户信息在网站或应用程序的所有页面上保持不变。 PHP中什么是会话(s...

  • PHP Session

    PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置...

  • PHP Sessions -- 学习笔记

    PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。 Session 变量保存的信息是单...

  • PHP SESSION

    PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一...

  • cookie机制的原理及应用

    Cookie是进行网站用户身份,实现服务端Session会话持久化的一种非常好方式。Cookie最早由Netsca...

  • Express框架-会话持久化

    在express4.0之前的版本,像session,cookieParser之类的中间件是伴随express自动安...

  • Flask-Login

    Flask-Login为Flask提供了用户会话管理。它处理了日常的登入,登出并且长时间记住用户会话; 用户登陆程...

  • Flask中的flask_login

    Flask- login为Flask提供了用户会话管理。它处理登录、注销和长时间记住用户会话等常见任务。 安装 L...

  • Cookie与Session

    会话 会话是一种持久网络协议,在用户(或用户代理)端和服务器端之间建立关联,从而起到交换数据包的作用机制。 Coo...

网友评论

      本文标题:PHP处理用户会话持久化

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