我目前正在为我的RESTful API实现OAuth 2.0体系结构。使用Redis检查访问令牌的每个请求
对于每个请求,我都在HTTP标头中为所有客户端设置授权承载令牌,以制作授权请求。
Authorization: Bearer sdflksd3r4823vkn95-03850432
据我所知,通常只在API中接受令牌直到过期日期。但是,如果用户想要令牌撤销,我需要采用一种方法来检查每个请求的令牌状态。
所以我要去数据库来检查每个HTTP请求思考。我有一种感觉,由于性能原因,这不会很好地扩展。
所以我想知道是否像Redis这样的解决方案适合于访问令牌状态的快速单一读取?
我绝对考虑一个布隆过滤器。虽然我也想知道它是否使用单例缓存是一个可行的选项 – 2013-04-27 01:45:08
如果你只有一台服务器,那么你有更多的选择,因为你只需要在一个地方维护状态。像Redis这样的外部服务器维护状态允许您拥有多个API服务器。单身人士只适用于你有一台服务器的情况。另一种选择是分布式地图(连贯,Hazelcast等)。如果令牌的到期时间相对较短,那么您也可以在分布式映射到期时从分布式映射中删除,以减小它的大小。 – sehrope 2013-04-27 01:49:22
优秀的答案。非常感谢! – 2013-04-27 01:57:19