1.后端 使用一个固定秘钥加密用户标识(uid)+创建token时间(ttl)
2.通过对称加密(收到客户端提交的token需要解开所有使用堆成加密)的加密算法生成一个字符串,这个字符串就是一个token,每次客户端请求都将token放到请求头header中(body参数也可以,无所谓在哪)
3.服务器端收到该请求并使用相同的秘钥解开token,查看token是否过期,也可以通过token中的uid和其他参数比较验证用户的合法性(例如:请求参数中也有一个uid必填参数,这样就可以对比两个uid是否相同,如果相同则说明是同一个人,如果单纯的只验证token,只要另外的用户拿到了没过期的token就可以伪造用户身份进行服务器端api的请求)
我们项目中的token,不是加密的,算是私有key -value ,随机生成一个uuid字符串;这个字符串放在redis ,前端传来的token 跟redis 比对,没匹配上就 401