在Django中,api键存储在哪里?

问题描述 投票:3回答:2

我目前正在通过Mongolabs建立一个使用外部MongoDb的web应用,api是基于个人密钥,使用in urls。就像文档中说的那样,例如:。

下面是一个完整的资源URL的例子。

https:/api.mongolab.comapi1databases?apiKey=。2E81PUmPFI84t7UIc_5YdldAp1ruUPKye所以,问题是如何安全地存储这样的api密钥。2E81PUmPFI84t7UIc_5YdldAp1ruUPKye

阅读Django文档中关于跨站请求伪造的内容,但还是不明白密钥记录在哪里。

ajax django mongodb mlab
2个回答
3
投票

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

一种方法是有一个 local_settings.py 中导入的文件。settings.py 文件,并放入 .gitignore 所以它不在git里。然而,有些人认为这不是好做法,因为这可能会诱使人们把复杂的东西放在VCS中没有的地方,所以人们实际上有不同的环境。然而我却没有意见。

try:
    from local_settings import *
except ImportError:
    pass  # No local_settings file

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

MONGO_API_KEY = os.environ['MONGO_API_KEY']

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


1
投票

我会在设置文件中从环境变量中加载它。请看一下 Django设置

© www.soinside.com 2019 - 2024. All rights reserved.