在 settings.py 中使用 API_KEYS 和 CLIENT_SECRETS 的最佳实践

Best practise for using API_KEYS and CLIENT_SECRETS within settings.py

如标题所示 - 我正在寻找在我的 Django 项目的 settings.py 中使用 API_KEYS、CLIENT_SECRETS 等的最佳实践。我似乎无法准确地找到我正在寻找的东西 - 明智的文档。

问一个隐含的问题:在开发和生产中存储此信息的最佳方法是什么?

settings.py 中使用 API_KEYS 和 CLIENT_SECRET 键的最佳做法是根本不要将它们存储在那里!

您最好在 OS 中设置环境变量,并在需要时在 settings.py 文件中检索它们。这样,您的密钥将永远不会触及代码库并安全地保留在 OS.

您可以在 settings.py:

中执行类似的操作
import os
API_KEY = os.environ.get('API_KEY_ENVIRONMENT_VARIABLE')
CLIENT_SECRET = os.environ.get('CLIENT_SECRET_KEY_ENVIRONMENT_VARIABLE')

我将这样的行添加到我的 settings.py(这来自 Python 2):

try:
    from local import *
except ImportError:
    print 'The local settings could not be found.'

然后我在同一目录中创建一个 local.py 文件,其中包含特定于部署或机密的设置。然后我将它添加到我使用的任何版本控制工具的忽略文件中,以确保它永远不会被提交。