请求头里面怎么可能会放UUID呢?
时间: 2024-02-24 14:00:20 浏览: 125
是的,我理解有误,请求头中应该不会放UUID。
实际上,可以将UUID作为token的一部分,然后将token存储到Redis中。在服务端接收到请求时,从请求头中获取Authorization信息,并将该信息与Redis中存储的token进行比对,以此来验证用户的身份。
具体可以按照以下方式来实现:
1. 在用户登录成功后,生成一个唯一的UUID字符串,并将该字符串作为token的一部分,形成完整的token。
```
token = "Bearer " + UUID.randomUUID().toString() + "." + JWT
```
其中,UUID.randomUUID().toString()方法会生成一个唯一的UUID字符串,JWT为JWT生成的token。
2. 将完整的token存储到Redis中,key可以按照以下方式组合:
```
key = "token:" + userName + ":" + ipAddress
```
其中,userName为用户的登录名,ipAddress为用户的IP地址,可以使用request.getRemoteAddr()获取。
3. 客户端在每次请求时,将该token作为请求头中的Authorization信息发送给服务端。
```
Authorization: Bearer {token}
```
其中,{token}为完整的token。
4. 服务端在接收到请求时,从请求头中获取Authorization信息,并将该信息与Redis中存储的token进行比对,以此来验证用户的身份。
5. 当用户退出登录或token失效时,从Redis中删除该token。
通过将UUID作为token的一部分,并将完整的token存储到Redis中,可以保证同一个IP地址在不同的浏览器上登录时,会生成不同的token,不会出现覆盖的情况。
阅读全文