Django 缓存简单的身份验证令牌
Django caching simple auth token
我有一个应用程序使用 Django DRF simple AuthToken,Postgres 用于数据库,Redis 用于缓存。
我正在尝试减少对我的数据库的调用次数,最常见的操作之一是在 AuthToken table 上 SELECT。事实上,受保护端点上的每个请求都需要调用它来验证用户的权限。
我们可以通过将用户令牌缓存在 Redis 中来减少对我们数据库的调用次数 {user_id: token}
。
假设我们为密钥设置了适当的到期时间,并且在令牌 AuthToken 被撤销的情况下我们使它无效,缓存 auth 令牌是一种反模式吗?是否有任何安全措施我应该关注的问题?
- 如果您不想进行数据库查找,可以使用 JWT。 JWT 正在使用密码学来检查令牌。
- 如果您想继续使用 DRF 令牌,您可以缓存它,但这会增加代码的复杂性。您是否看到这些查询对数据库性能产生巨大影响?
- 如果您决定缓存token,请记得保护Redis。
- 我在我的样板中使用 DRF 令牌 Django+React articles。我喜欢这种方式,因为它使 code/flow 简单。
我有一个应用程序使用 Django DRF simple AuthToken,Postgres 用于数据库,Redis 用于缓存。
我正在尝试减少对我的数据库的调用次数,最常见的操作之一是在 AuthToken table 上 SELECT。事实上,受保护端点上的每个请求都需要调用它来验证用户的权限。
我们可以通过将用户令牌缓存在 Redis 中来减少对我们数据库的调用次数 {user_id: token}
。
假设我们为密钥设置了适当的到期时间,并且在令牌 AuthToken 被撤销的情况下我们使它无效,缓存 auth 令牌是一种反模式吗?是否有任何安全措施我应该关注的问题?
- 如果您不想进行数据库查找,可以使用 JWT。 JWT 正在使用密码学来检查令牌。
- 如果您想继续使用 DRF 令牌,您可以缓存它,但这会增加代码的复杂性。您是否看到这些查询对数据库性能产生巨大影响?
- 如果您决定缓存token,请记得保护Redis。
- 我在我的样板中使用 DRF 令牌 Django+React articles。我喜欢这种方式,因为它使 code/flow 简单。