问题描述
现在需要弄个token验证,客户端递交客户端id和客户端密钥,服务端审核通过后则从配置文件中获取配置的过期时间,然后生成一个GUID做为access_token,把这个access_token存到缓存,并设定该缓存的过期时间。最后将access_token与过期时间组装成JSON返回给客户端。
需要解决的问题
怎么弄这个缓存区,并且设置过期时间,是用redis吗?怎么实现?就是最简单的验证,怎么把UUID和时间存在缓存,然后让查找验证,过期就返回401重新获得token。
现在需要弄个token验证,客户端递交客户端id和客户端密钥,服务端审核通过后则从配置文件中获取配置的过期时间,然后生成一个GUID做为access_token,把这个access_token存到缓存,并设定该缓存的过期时间。最后将access_token与过期时间组装成JSON返回给客户端。
怎么弄这个缓存区,并且设置过期时间,是用redis吗?怎么实现?就是最简单的验证,怎么把UUID和时间存在缓存,然后让查找验证,过期就返回401重新获得token。
如果是单机服务自己尝试,可以考虑直接放在程序的内存里面,使用 Google 的开源工具,Guava。比如这篇文章的说法
https://mp.weixin.qq.com/s/d3...
如果是集群,考虑使用 Redis,同样的道理,直接使用 k-v 的形式存储,设置一个过期时间,查看是否存在即可判断是否有效
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
放Redis, Redis存值的时候天然的可以设置过期时间,不需要做其他额外判断。
验证的时候直接去Redis取值,如果没有值就当过期了,返回前端
存储token的话,其他缓存都是可以的,Map也可以,但是内存的缓存都有一个问题一旦就是服务重启了,之前的token就都丢了