Django 中存储 api 密钥的位置

3 django ajax mongodb mlab

我目前正在构建通过 Mongolabs 使用外部 MongoDb 的 Web 应用程序。\nAPI 基于 URL 中使用的个人密钥。正如文档所说,例如:

\n

Here\xe2\x80\x99s 是完整资源 URL 的示例:

\n

https://api.mongolab.com/api/1/databases?apiKey=**2E81PUmPFI84t7UIc_5YdldAp1ruUPKye* *\n所以问题是如何安全地存储这样的api密钥2E81PUmPFI84t7UIc_5YdldAp1ruUPKye

\n

阅读有关跨站点请求伪造的 Django 文档,但仍然不明白密钥记录在哪里。

\n

Chr*_*ers 6

有两种方法可以做到这一点。

一种方法是local_settings.py在主settings.py文件中导入一个文件并放入其中,.gitignore这样它就不在 git 中。然而,有些人认为这不是一个好的做法,因为它可能会诱惑将 VCS 中没有的复杂内容放入其中,因此人们实际上拥有不同的环境。不过我对此很满意。

try:
    from local_settings import *
except ImportError:
    pass  # No local_settings file
Run Code Online (Sandbox Code Playgroud)

另一种方法(不喜欢第一种方法的人推荐)是通过环境变量设置它,并在settings.py.

MONGO_API_KEY = os.environ['MONGO_API_KEY']
Run Code Online (Sandbox Code Playgroud)

然后你必须以某种方式传递环境变量。例如,通过 uwsgi 的环境设置,或者通过导出在 bash 中设置它,或者通过其他方式。