我有一个 Python 脚本,它使用来自 API 的数据。我在本地计算机和服务器上运行此脚本。我使用客户端凭据(客户端 ID 和密钥)进行身份验证,接收授权令牌并执行我的请求。一旦我完成了,这个令牌仍然有效一段时间。如果我需要在令牌过期之前再次运行此脚本,我想重用该令牌而不是请求另一个令牌。
我正在努力想办法存储令牌。如何安全地存储这些数据以供重复使用?
这不是一个长时间运行的应用程序,因此存储机制必须位于脚本外部。存储在 JSON 文件中似乎并不安全。
您可以将信息保存在环境变量中,而不是写入 json 文件。然而,对安全的影响是相同的。其他进程也可以使用此环境变量。
另一个选项可能是Ansible Vault。请注意,您仍然需要管理密码。
from ansible_vault import Vault
from getpass import getpass
token = "foo"
password = getpass()
vault = Vault(password)
vault.dump(token, open("vault.yml", "w"))
from ansible_vault import Vault
from getpass import getpass
password = getpass()
vault = Vault(password)
token = vault.load(open('vault.yml').read())
# check with pyjwt whether token is still valid...
# do more stuff