python - 为第三方创建 api token

标签 python django

我正在开发一个应用程序,第三方有兴趣与我们集成。我想为每个用户创建一个 token ,并且想知道 django 中最有效和最常见的方法是什么?我试图找到一个,发现这个看起来很有希望:

https://github.com/jpulgarin/django-tokenapi

显然开箱即用它不会工作,但我可以类似地实现它。上面的项目基本使用了sha哈希算法。使用这个或 MD5 作为 api token 安全吗?如有任何帮助,我们将不胜感激!

最佳答案

当您选择 API key 时,您需要考虑的两个因素是

  1. 无法猜测。这意味着您的 key 必须是随机出现的,并且太长而无法暴力破解

  2. 唯一。意味着两个用户都不会意外获得相同的 API key 。您可以通过数据库唯一性约束来强制执行此操作。

请记住,如果您仅使用 1 个 key ,则必须在所有 api 端点上启用 SSL。 key 在运输途中被盗是很糟糕的,M'kay?

现在,为了实现,如果您使用自己的自定义 View 来服务您的 API,则 https://github.com/jpulgarin/django-tokenapi应该很适合你。

如果您使用 TasyPie 或类似产品,您可能需要使用其内置授权代码,包括 api-key 管理。

http://django-tastypie.readthedocs.org/en/latest/authentication_authorization.html#apikeyauthentication

http://django-rest-framework.org/api-guide/authentication.html#tokenauthentication

关于python - 为第三方创建 api token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823566/

相关文章:

python - 如何将 Python 连接到 Spark session 并保持 RDD 事件

python - 通过Key检索GAME数据

django - 表单验证错误和错误代码

python - Tensorflow: 'tf.get_default_session()` 在 sess=tf.Session() 为 None 之后

python - 将列表映射到霍夫曼树,同时保留相对顺序

python - 使用 Python 将 JSON 转换为 CSV(空闲)

python - Django1.5 - python2.7 -如何显示和更新具有3个外键的数据库

django - django 中的多个数据库 -syncdb 不会创建 django_ 表

python - 对 admin.py 的更新未反射(reflect)在 django 管理页面中

python - django 1.3 记录 timedrotatingfilehandler 在每次写入时截断文件