我正在为移动应用程序构建 REST API 后端。在我们的设计选择中,我们决定让 OAuth2 提供商处理登录安全性。
但是,我不确定访问令牌的最佳实践是什么,我从 OAuth2 提供程序获取。
情况是,当用户登录时,我从 OAuth2 提供者那里获得了一个访问令牌。每次移动应用程序向我的后端发出请求时,我都需要使用这个令牌。因此,我可以针对 OAuth2 提供者进行验证,以查看令牌是否仍然有效。
我知道我要创建一个 JWT,并将它交给移动应用程序,它会在每次发出请求时使用它。
现在我的问题是,我是否应该将我从 OAuth2 提供程序获得的访问令牌存储在 JWT 中作为声明。
或者我应该将它存储在数据库中,并将其与用户 ID 连接,我将存储在 JWT 声明中?
也许建议我用 JWE 加密 JWT?如果是这种情况,如果我为每个请求解密,而不是进行数据库查找(我将使用 MongoDB 或 Redis),性能会不会降低更多,或者性能影响是否相同?
与我的 REST API 的连接将通过 HTTPS。