1、jwt php软件包
composer require firebase/php-jwt
2、redis
也有php redis可供选择,安装php redis的好处是方便调试,可以跟php代码一样调试。
但由于我是在laragon的环境下进行开发,laragon本身自带redis,我就没有再安装一个php redis
3、token 生成方案
可供选择的方案包括:
- 标准token认证:单token认证,风险是token被窃取后,造成持续的数据泄露
-
- 双token认证:目前最好的方式,包括access_token和request_token,有效期分别为1小时和7天。两个token分别保存在jwt和redis上。access_token失效后,如果request_token还有效,返回401,前端重新获取access_token后,再发送业务请求。
4、jwt、redis的内容分工
- jwt:仅仅通过user_id产生
- redis: 以token为键的关键组成部分,保存包括language、theme、locale、权限等数据,方便php后端读取。
5、redis的有效期
每次访问了redis,就自动延长redis的有效期