当前位置: 首页 > news >正文

网站创意策划案系统优化软件推荐

网站创意策划案,系统优化软件推荐,网站集约化建设,西峡县住房和城乡建设局网站背景: ​ 以前的单体项目,使用的是session来保存用户登录状态,控制用户的登录过期时间等信息,但是这个session是只保存在该服务器的这个系统内存中。系统只有一个服务就没关系,但是如果是分布式的服务,每个…

背景:

​ 以前的单体项目,使用的是session来保存用户登录状态,控制用户的登录过期时间等信息,但是这个session是只保存在该服务器的这个系统内存中。系统只有一个服务就没关系,但是如果是分布式的服务,每个服务都有一个自己的session,传统的做法就无法判断用户的登录状态了,也有解决办法,就是服务之间的session复制,但是代价太大了,开发成本高、难以维护。所以分布式服务下我们一般使用当下比较流向的redis+token实现用户登录。

解决方案:

​ 解决方案分两种情况,第一种:单点登录(一个用户一个token),第二种:多客户端登录(一个用户多个token)

单点登录:

​ 单点登录,会更加安全,用户同时只能在一个客户端登录。token生成,这个就不说了,网上代码一大堆,保持随机性和唯一性就可以。整个单点登录的具体实现思路如下:

  1. 当用户登录时,且账号密码正确
    1. 后端根据用户ID删除redis中1.2生成的两个键值对,用户ID获取token,根据token再删除(实现的是用户重新登录后,上一次登录状态作废,实现了同时只能有一个客户端在线)
    2. 后端生成一个token,往redis存两个带过期时间(一般是2小时)的键值对,分别为 key:token,value:用户信息、key:用户ID,value:token。第一个键值对用来判断用户登录状态是否过期,第二个键值对便于获取用户信息。
    3. 后端最后将token返回到响应头中
  2. 前端解析返回的响应头,获取token,将token存储在cookie中(默认20分钟过期)
  3. 前端在登录后的发送的请求,都需要在请求头中赋值token(前端请求拦截器实现)
  4. 后端设置网关拦截器
    1. 拦截除白名单(自己配置,因为有的请求不需要校验token,比如登录)外的请求
    2. 判断请求是否有token且该token能否在redis中找到,如果有token则放行该请求,且设置响应头赋值token。token不存在则返回登录过期(此处于前端约定登录过期的状态)
    3. 判断请求中的token存在,且距离redis设置的过期时间不到五分钟(此处灵活设置),重新生成token(一定时间更换token,提高安全性),执行1.2操作,将redis中老的token设置过期时间为30秒(解决并发请求,其他请求还在拦截器处理中)
    4. 4.3操作加redis分布式锁,锁的粒度为用户级,防止同一用户多次刷新token
  5. 前端设置响应拦截器,当后端返回登录过期时,跳转到登录页,提示登录过期。当后端返回正常时,获取响应头的token,刷新cookie里的token

多客户端登录

​ 多客户端,用户可同时在多个客户端登录。token生成,这个就不说了,网上代码一大堆,保持随机性和唯一性就可以。整个多客户端登录的具体实现思路如下:

  1. 当用户登录时,且账号密码正确
    1. 后端正常生成新的token,存入redis(实现的是用户重新登录后,上一次登录状态依旧存在,实现了同时有多个客户端在线)
    2. 后端生成一个token,往redis存两个带过期时间(一般是2小时)的键值对,分别为 key:token,value:用户信息、key:用户ID+token,value:token。第一个键值对用来判断用户登录状态是否过期,第二个键值对便于获取用户信息。
    3. 后端最后将token返回到响应头中
  2. 前端解析返回的响应头,获取token,将token存储在cookie中(默认20分钟过期)
  3. 前端在登录后的发送的请求,都需要在请求头中赋值token(前端请求拦截器实现)
  4. 后端设置网关拦截器
    1. 拦截除白名单(自己配置,因为有的请求不需要校验token,比如登录)外的请求
    2. 判断请求是否有token且该token能否在redis中找到,如果有token则放行该请求,且设置响应头赋值token。token不存在则返回登录过期(此处于前端约定登录过期的状态)
    3. 判断请求中的token存在,且距离redis设置的过期时间不到五分钟(此处灵活设置),重新生成token(一定时间更换token,提高安全性),执行1.2操作,将redis中老的token设置过期时间为30秒(解决并发请求,其他请求还在拦截器处理中)
    4. 4.3操作加redis分布式锁,锁的粒度为用户+token级,防止同一客户端用户多次刷新token
  5. 前端设置响应拦截器,当后端返回登录过期时,跳转到登录页,提示登录过期。当后端返回正常时,获取响应头的token,刷新cookie里的token
http://www.yayakq.cn/news/232571/

相关文章:

  • 资讯网站的好处网站建设费记到什么科目
  • 商丘网站建设想象力网络网站开发职业总结
  • 手机企业网站多少钱长春自媒体公司
  • 手机网站开发解决方案网页编辑按哪个键
  • 烟台网站排名优化费用小米发布会最新
  • 网站策划表沧州seo
  • 广州营销型网站建设网站建设返回函数
  • 各大网站开发的区块链网站查询信息
  • 做公司网站思路区块链技术和网站开发结合
  • 自己的电脑做网站空间视屏公司网站 仿站什么意思
  • 字体图标制作网站网站是用什么做的
  • 商城网站开发的任务书企业对电子商务网站的建设
  • 四川住房和城乡建设厅网站可以做go分析的网站
  • 医院科室网站建设做设计挣钱的网站
  • 网站建设开发三层架构app制作需要哪些技术
  • 做微信网站价格网站制作手机
  • 做简单网站需要学什么软件泰州做房产的网站
  • 做微信公众号微网站wordpress怎么重新配置
  • 扬州做网站的价格沈阳网站建设服务器
  • 服务器网站建设软件有哪些wordpress 用户遍历
  • 接做网站需要问什么软件seo推广品牌排行榜
  • 做网站市场报价步登顶企业邮箱注册方法
  • wordpress企业门户网站青岛网页设计
  • 商城建网站怎么根据网站做二维码
  • 广东品牌网站建设哪家好优酷的网站头怎么做的
  • 网站内容规划要包括什么内容怎么样推广网站
  • 网站开发和编程的联系莆田软件定制开发
  • 毕设如何做网站先做网站还是先注册公司
  • 中国城乡建中国城乡建设部网站wordpress无插件邮件
  • 推荐做网站的话术成都家装公司