前后端分离项目 AccessToken 验证机制设计
2021-05-18 18:55:32 52 举报
在前后端分离的项目中,AccessToken 验证机制是非常重要的一环。它主要用于用户身份验证和授权,确保只有合法用户才能访问受保护的资源。当用户成功登录后,服务器会生成一个 AccessToken 并将其返回给客户端。客户端在后续的请求中需要将此 AccessToken 放在请求头中,以便服务器对其进行验证。服务器收到请求后,会从请求头中提取 AccessToken,然后与数据库中的用户信息进行比对。如果验证通过,服务器会处理请求并返回相应的数据;否则,会返回错误信息。这种机制可以有效防止未授权访问,保证系统的安全性。
作者其他创作
大纲/内容
USER_ID + '#' +MD5(用户登录IP + 用户AGENT)
登录密码使用RSA解密后使用
允许同地区多设备
USER_ID + '#' +MD5(用户登录IP所在地区)
发起请求
只允许不同端单一设备
正常接口请求
只允许单一设备
2.生成access_token
客户端
允许同IP多设备
延长token有效期
接收客户端登录请求
Only_Token针对当登录用户唯一的Token
3.返回
1.生成ONLY_TOKEN
USER_ID + '#' +MD5(用户登录IP)
;;
服务端
设计优势、功能:结合浏览器端限制(不同浏览器之间)、IP限制、以及登录限制(异地登录提示,多设备登录自动下线(PC端、移动端))、以及长时间未操作自动下线限制。当前文档已忽视验证码设计(可自行添加至相关位置)
通过only_token分割字符串#获取user_id
key
value
group
{only_token}
true
access_token_{userid}
客户登录密码等重要数据后端可以要求使用RSA加密发送防止拦截,留意RSA加密字符串长度限制加密方式:RSA(内容)
登录请求
ACCOUNT_TOKEN 验证机制
access_token提供给用户使用的Token
已知的 BUG当前验证逻辑已线上测试1-2年时间,暂未发现较大问题,现已知BUG 如下1.当用户 IP 突然变化时,将会导致验证 access_token 时判断出的 only_token 与现环境下生成的 only_token 不同,导致用户同设备下收到其他位置登录提示的问题。可行的解决办法:暂无缓解的办法,不提示其他设备登录框或使用”允许同地区多设备“等其他方式
12312313123123123123131231231231312312312313
返回生成的access_token以及过期时间参数
用户登录处理流程结束
ACCOUNT_TOKEN 创建机制
验证通过
{access_token}
access_token
标题 1
标题 2
标题 3
标题 4
标题 5
USER_ID + '#' +MD5(用户登录IP + 用户AGENT + 用户登录设备类型[PC\\MOBILE])
服务端数据保存
判断 access_token_+userid group 组中是否存在相关only_token,如果不存在表示用户已经被强制下线(例如其他设备或异地登录),返回相关报错提示
重新写入一次以更新expire
Token数据库(Redis等)
0 条评论
下一页