在哪里存储社交登录 Oauth2 访问令牌

时间:2021-07-25 23:30:41

标签: java spring rest security oauth-2.0

我正在尝试构建一个将实现社交登录 (Spotify) 的 Spring Boot REST API。使用 Spotify 成功登录后,我想将 Spotify access_token 存储在我生成的 JWT 令牌中,以便能够访问我的后端。我需要一个 Spotify 访问令牌才能对 Spotify 进行 API 调用(几乎每个对我的应用程序的请求都需要调用 Spotify API)。在 JWT 中存储对外部服务的访问令牌是一种好习惯吗?或者我应该将访问令牌存储在我的数据库中并在需要时读取它?也许您有关于如何实现将调用外部服务的无状态 REST API 的任何指南?

1 个答案:

答案 0 :(得分:0)

通常,我将访问令牌存储在 Redis 中,它比 DB 快。如果你使用 DB,每个任务都会链接 DB 两次,一次用于获取用户信息(如用户名和密码),一次用于读取访问令牌。任务频率很小的时候,没问题。但是当请求的频率越来越多时,存储在DB中,会非常浪费性能。使用Redis还有一个好处,就是有过期时间。所以,我的大部分项目,我使用 Redis 存储令牌。