1.2 KiB
1.2 KiB
数据流
1.前端开始注册,关键信息(user,passwd)传入后端接口,执行注册流程(此处注册后不自动登录),密码通过哈希后存数据库(不可逆存储) 2.前端登录,关键信息(user,passwd)传入后端接口,后端校验,成功后生成refresh token和access token,将accesstoken对应的session存入redis而不存token,校验由拿到token中获取的sid匹配,refresh token哈希后连带session的其他信息存入数据库,也可以存入redis进行加速读取,并将二者返回给前端,前端收到后,将access token存入localstroage或内存(防止xss), refresh token存入httponly cookie,使用时代credential: include 3.业务使用,每次业务http请求前先检查access token的过期时间,如果少于1-5分钟触发刷新token,携带refreshtoken向后端发送请求进行更换token,否则则直接进行业务,若在后端业务开始鉴权时返回401,则前端也要重试refresh,此处refresh的时候可以同时更新refresh token和accesstoken,并且作废旧token,如果refresh token过期,即前端响应退出登录(此处可以模拟7天免登录),此处重试仅一次即可,多个同token refresh请求仅允许一个执行