Max*_*der 13 api rest redis access-token oauth-2.0
我目前正在为我的RESTful API实现OAuth 2.0架构.
对于每个请求,我在HTTP标头中设置了授权承载令牌,以便我的所有客户端进行授权请求.
Authorization: Bearer sdflksd3r4823vkn95-03850432
Run Code Online (Sandbox Code Playgroud)
我理解通常的做法是在API到期日之前接受令牌.但是如果用户想要撤销令牌,我需要采用一种方法来检查每个请求的令牌状态.
所以我想去Db检查每个HTTP请求.我有一种感觉,由于性能原因,这不会很好地扩展.
所以我想知道像Redis这样的解决方案是否适合快速单次读取访问令牌状态?
seh*_*ope 14
为令牌设置HMAC的目的是使服务器可以快速验证它而无需调用任何外部数据存储(例如Redis,MySQL等).由于没有共享状态(用于验证令牌是令牌本身和HMAC的密钥的所有信息),这具有向多个服务器精确扩展的额外好处.
如果您要获得撤销令牌的黑名单,那么像Redis这样的东西可能会很好(尽管仍然比没有为每个令牌验证做远程调用慢).正确设置,Redis实例和API服务器之间的延迟很低,每个请求应该会看到<10ms.
奖励:进一步加快速度的另一个选择是使用Bloom过滤器来处理被拒绝的API请求的缓存.这样,如果Bloom过滤器将请求令牌标记为可能已撤销,则只会转到Redis.请注意,由于这是另一层缓存,因此当令牌被拒绝时,您必须更新Bloom过滤器的状态.
| 归档时间: |
|
| 查看次数: |
13222 次 |
| 最近记录: |