如何在我的代码中存储 API key (我将在 PyPI 上上传该代码)?我不希望人们能够下载原始包文件并查看 API key 。
最佳答案
在我看来,您的应用程序的架构是错误的。
据我了解,有两种情况是可能的。
您放入应用程序中的 API key 适用于第 3 方 API。
在这种情况下,您应该要求用户生成自己的 API key ,并使用这些 API key 初始化您的应用以使用您的模块。
这就是 twitter/Google/Github 以及所有其他 Python 模块的工作原理。
示例:https://github.com/inueni/birdy
from birdy.twitter import UserClient
client = UserClient(CONSUMER_KEY,
CONSUMER_SECRET,
ACCESS_TOKEN,
ACCESS_TOKEN_SECRET)
- 您提供自己的服务并使用 API key 访问该服务。
在这种情况下,您应该为用户提供一个端点来生成 API key 并再次使用它来初始化模块。
为什么要这样做?
拥有 API key 而不是公开可用的开放端点的全部意义在于安全性。您应该能够单独限制用请求轰炸您的 API key 。
如果您有 1 个 API key 用于所有模块下载,则该模块的每个用户都将使用相同的 API key 。你将无法压制任何人。
也没有安全性(任何下载该模块的人都可以看到 key )。
要更改 API key ,您必须更新模块并重新部署。并且您模块的所有用户都必须进行 pip 升级才能使用您的模块。
关于python - 如何在 PyPI 项目中存储 API key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41089103/