我正在开发一个应用程序,第三方有兴趣与我们集成。我想为每个用户创建一个 token ,并且想知道 django 中最有效和最常见的方法是什么?我试图找到一个,发现这个看起来很有希望:
https://github.com/jpulgarin/django-tokenapi
显然开箱即用它不会工作,但我可以类似地实现它。上面的项目基本使用了sha哈希算法。使用这个或 MD5 作为 api token 安全吗?如有任何帮助,我们将不胜感激!
最佳答案
当您选择 API key 时,您需要考虑的两个因素是
无法猜测。这意味着您的 key 必须是随机出现的,并且太长而无法暴力破解
唯一。意味着两个用户都不会意外获得相同的 API key 。您可以通过数据库唯一性约束来强制执行此操作。
请记住,如果您仅使用 1 个 key ,则必须在所有 api 端点上启用 SSL。 key 在运输途中被盗是很糟糕的,M'kay?
现在,为了实现,如果您使用自己的自定义 View 来服务您的 API,则 https://github.com/jpulgarin/django-tokenapi应该很适合你。
如果您使用 TasyPie 或类似产品,您可能需要使用其内置授权代码,包括 api-key 管理。
http://django-rest-framework.org/api-guide/authentication.html#tokenauthentication
关于python - 为第三方创建 api token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823566/