如何创建密钥以获取对 Django API 的请求?

How to create key to get a request to Django API?

我正在使用 Django 创建一个数据库,并且我正在使用 Excel 和 Apps 脚本访问它。我无法登录到我的超级用户帐户(我将拥有的唯一帐户)。因此,我想知道是否有一种方法可以设置通过 HTTP header 传递的密钥或密码,我可以使用它来访问我的 API.
目前我只有一个 API get 方法,但我会有更多的创建、更新等方法,我也希望能够对这些方法使用相同的密钥。这是一个部署在 heroku 中的非常简单的 Django 应用程序,所以我没有使用 django-REST-framework,也没有使用 graphene-django。因此,如果解决方案可以在不安装任何其他东西的情况下出现,那就太好了。不过,如果不行的话,还是通过graphene-django来解决比较好,因为我以前用过,比较熟悉
重要的是要注意 excel 文件和应用程序脚本都是私有的,因为我使用 django 作为小型个人项目的数据库管理器。

非常感谢您!

您尝试过使用 djangorestframework-api-key 吗?

过程就这么简单

$ pip install djangorestframework-api-key
# settings.py

INSTALLED_APPS = [
  # ...
  "rest_framework",
  "rest_framework_api_key",
]

...

REST_FRAMEWORK = {
    "DEFAULT_PERMISSION_CLASSES": [
        "rest_framework_api_key.permissions.HasAPIKey",
    ]
}

$ python manage.py migrate

然后你的卷曲应该看起来像这样

$ curl -H "Authorization: Api-Key <API_KEY from admin page>" http://www.example.com

Django 身份验证系统的 REST 实现。 约瑟

Getting Started with Djoser

此外,您需要一个 MOD HEADER,它是 Chrome 中的一个扩展 Add it from here

一旦您的 Django 项目启动并且 运行 转到 localhost:8000/auth/jwt/create/ 用于通过提交 usernamepassword(即:POST 方法)

创建 access token

有了这个access token,你需要在MOD HEADER in Request Header中设置它,你是很好去。 它是一个 JSON 网络令牌,这就是为什么你需要在它前面加上 JWT 前缀,然后是 access token