Django:安全地存储授权令牌以与所有 Django 用户共享

Django: safely store auth token to be share along all django users

我构建了一个 Django 站点,其中要求所有用户使用 Django 的标准身份验证进行身份验证。在某些页面中,django 将向第三方站点发出请求,这也需要身份验证。

这个第三方网站不是 django 网站,只有一个用户,这意味着所有 django 用户将共享这 1 个用户来检索信息。

此第三方站点的身份验证是使用 JWT Flow 进行的。我们首先检索一个身份验证令牌,然后将此令牌发送到添加 Django 用户 ID 的期望端点,以检索该用户 ID 信息。

我想避免 django 中的所有用户进行多次请求以获得相同的身份验证令牌,因为这对所有人来说都应该是相同的。

Django 有没有办法安全地存储这个授权令牌?也许如果用户由于令牌过期而失败,django 会检索一个新令牌并将其安全存储以供所有用户使用?

您可以将令牌存储在环境变量中。这是安全的,这个 var 的多个请求不是问题,因为默认的 django 是同步的。所以只需将其存储在 .env 文件中并使用 python_decouple package

将其解压缩

在需要访问此第 3 方站点令牌的代码中执行如下操作:

remote_token = cache.get_or_set('remote-token', get_remote_token)

get_or_set 可以接受一个可调用(函数),只有当缓存尚未填充时才会执行。

更多信息here