是否在 oauth 上缓存访问令牌?

Chr*_*ian 6 java oauth

我目前正在使用 oauth2 与 Google 实施身份验证。

我读过我应该缓存访问令牌以供以后使用,但我真的需要这样做吗?

我考虑过将其加密存储在会话中。如果它过期了,我会得到一个新的令牌。

另外,如果我需要缓存令牌,我如何知道它属于哪个用户?

Car*_*ann 5

我读过我应该缓存访问令牌以供以后使用,但我真的需要这样做吗?

是的,这就是 OAuth 的用途。需要访问令牌才能让您的应用程序访问服务提供商的资源,而无需每次都提供用户名和密码。

我考虑过将其加密存储在会话中。如果它过期了,我会得到一个新的令牌。

看起来你把这里的事情搞混了。会话的过期和访问令牌的过期是不同的事情。访问令牌的生命周期通常比会话长得多(例如令牌:60 分钟 vs 会话:15 分钟)。

如果访问令牌过期,您需要刷新令牌才能获取新的访问令牌。如果您没有刷新令牌,则必须再次启动授权流程才能获取新的访问令牌。

另外,如果我需要缓存令牌,我如何知道它属于哪个用户?

您有责任在数据库中的某个位置维护该连接。服务提供商(在您的情况下为 Google)在其一端执行相同的操作,以便将访问令牌与用户/资源相匹配。关于第二点:您还应该存储刷新令牌。


我建议您阅读此处:为什么 OAuth 设计为具有请求令牌和访问令牌?