李成笔记网

专注域名、站长SEO知识分享与实战技巧

前后端分离之会话管理(前后端分离有session吗)

名词说明:

  • token过期时间:英文“ttl”,就是token经过多少秒后失效(单位:秒),通常设置30分钟即可
  • 黑名单宽限时间:英文“blacklist_grace_period”,就是token过期后放入黑名单下,经过多少秒就会完全失效(单位:秒),通常设置10秒即可
  • token刷新时间:英文“refresh_ttl”,就是token过期后在多少秒内可以兑换新的token(单位:秒),通常设置14天即可

传输途径:

  • header:前端可以使用请求头传输token,后端可以使用响应头传输token(至于名字前后端自己约定)
  • cookie:好处是后端签发的token不需要前端操作自动就会带上;坏处是个别环境不支持cookie,比如小程序、浏览器的无痕模式。
  • param:前端通过请求参数传输token,后端通过响应参数传输token。坏处是不安全,有心之人也会容易拿到

前后端操作流程:

1.前端通过登录页面提交账号密码

2.后端验证账号密码,正确则返回token数据(通过header、cookie、param任意一种或几种即可)

3.前端保存token数据到本地存储,每次访问都带上该token(通过header、cookie、param)

4.后端需要会话的接口验证token是否存在、有效,以及是否过期

(1)存在、有效、没有过期,那就正常访问接口(检查token过期时间ttl)

(2)过期了,并且没有在黑名单下,那就将该token放入黑名单,并签发一个新的token(通过响应头、cookie、参数返回),并且正常访问接口(检查token刷新时间)

(3)过期了,并且在黑名单下,没有超过黑名单宽限时间,正常访问接口(检查token黑名单宽限时间blacklist_grace_period)

(4)过期了,并且在黑名单下,超过了黑名单宽限时间,判定该token无效

(5)无效的情况还有一种,token过期了,但是超过了 token可以刷新时间,那也是无效的token(检查token刷新时间refresh_ttl)

5.前端

(1)可以使用cookie的环境,如果后端签发token通过cookie返回,那每次token过期,后端签发的新token都会在前端访问接口时自动带上,无需做任何操作。

(2)不可以使用cookie的环境,比如小程序、浏览器无痕模式,每次token过期都会签发一个新的token并通过header返回,前端只需要用新token替换旧token,这样每次都会带上新token了。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言