2. 如果是非生产环境,直接由header中读取token 。
二、 生产环境传递如下参数
memberid (用户id)
nonce(随机字串,6位)
timestamp(当前时间戳,到秒)
sign= md5( uid+ nonce + timestamp +token )
三、 验证逻辑
1. 验证时间戳
判断时间戳是否起过60s,大于60s则判别为重放功击 。
2. 验证nonce
首先验证nonce在 reids中是否存在,如果存在,则判别为重放功击,否则将nonce记录在redis中(key为:"nonce"+uid+"_"+nonce),失效时间为60s 。
3. 验证sign
md5( uid+ nonce + timestamp +token ) 验证是签名是否通过 。
4. 验证token
通过uid拿到token,验证逻辑同验权流程 。
当然在不同的业务场景下实现方案是多种多样的,仅以此方案抛转引玉,供大家参考 。
推荐阅读
- Captcha验证码机制已被网络钓鱼骇客所利用
- Java类的加载机制
- mysql数据库 InnoDB崩溃恢复机制总结
- Java反射机制是开发第三方架构的基础
- 基于centos7系统安装部署sendmail邮箱服务
- Redis主从复制机制详解
- 独家揭秘百度信息流广告算法机制
- python基于SMTP发送邮件
- 抖音,头条这类自媒体的推荐机制是什么?大数据如何给你贴标签?
- 基于DNS隐蔽信道的攻击与检测