对于单点登录(SSO),我有一个auth服务器(带有用户表)和多个资源服务器(各种Web应用程序)。
到目前为止,我已经使用Oauth 2.0实现了JWT并从auth服务器获得了访问令牌。
我从OAuth 2.0规范中了解到资源服务器现在必须与Auth服务器通信以验证令牌。这很简单,可以通过向端点GET
的auth服务器发送users/me
请求来获取用户对象以及其他用户范围。
现在我要说的是来自资源服务器的Auth服务器调用的频率。为资源服务器的每个传入请求调用auth服务器效率不高,并且由于额外的往返而会造成缓慢。
资源服务器与auth服务器通信的频率是多少?如果不是每个请求,那么我如何保留身份验证信息?
我正在考虑在资源服务器上使用会话,但我不确定这是否是正确的方法。
答案 0 :(得分:0)
如果您的访问令牌包含到期时间,那么您可以在很长时间内限制对资源服务器的连续请求。一旦获取和其他请求首先在缓存中查找,您可以缓存访问令牌,也可以定期检查访问令牌是否仍然有效。