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

建网站哪个好 优帮云wordpress文章分类

建网站哪个好 优帮云,wordpress文章分类,大连网站开发建站,传奇游戏网站背景: ​ 以前的单体项目,使用的是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/839013/

相关文章:

  • asp.net 获取网站域名游戏官网平台
  • 网站换模板有影响吗家电维修怎么自己做网站
  • 怎样运营推广网站学做网站视频教程
  • 清远seo站内优化云南网站优化公司
  • 建设银行对公网站织梦网站管理后台系统上面的织梦链接怎么样去掉
  • 灵璧哪有做网站的destoon 网站后台
  • 网站开发语言有哪几种深圳网站制作公司兴田德润官网多少
  • 石家庄软件外包网站建设和优化那本书好
  • 定制制作网站设计邵阳网站建设制作
  • 博客网站大全wordpress英文模板下载
  • 网站做了泛解析 为什么影响seo旅游网站开发参考文献
  • 图书馆网站开发需求分析wordpress 整站
  • php怎么做网站程序泰安爆炸最新消息今天
  • 吉林省现代交通建设有限公司官网站域名查询138ip
  • 偏门网站建设石家庄大型网站建设
  • 做网站卖彩票app界面怎么做
  • 17网站一起做网店睡衣我的网站dede
  • 培训网站排名企业级软件
  • 网站职业培训学校ui网页设计介绍
  • 国外设计大师网站网站优化seo推广服务
  • 网站设计中怎么设置当前元素不可见进口手表网站
  • pyton怎么做网站的代码有趣的网站有哪些
  • 手绘风网站大朗镇网站仿做
  • 网站 流量攻击品牌互动营销案例
  • 珠海网站设计培训学校创业先做网站
  • 上海创新网站建设wordpress cms主题制作
  • 凡科网站怎么做链接建设银行徐州分行网站
  • 科技网站的一些案例展示网络营销方式和平台推广
  • seo整站优化吧建e网站
  • 免费网址导航网站建设深圳做软件开发的公司