Как создать ключ для получения запроса к Django API?
Я создаю базу данных с помощью Django, и получаю к ней доступ с помощью Excel и Apps Script. Я не могу войти в свою учетную запись суперпользователя (единственная учетная запись, которая у меня будет). Поэтому я хочу знать, есть ли способ задать ключ или пароль, передаваемый через HTTP-заголовок, который я могу использовать для доступа к моему API.
.
В настоящее время у меня есть только один метод API get, но у меня будет больше методов create, update и т.д., и я хочу иметь возможность использовать один и тот же ключ и для них. Это действительно простое Django-приложение, развернутое в heroku, поэтому я не использую ни 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
REST-реализация системы аутентификации Django. DJOSER
Также вам нужен MOD HEADER, который является расширением в Chrome Добавьте его отсюда
После того, как ваш проект Django запущен, перейдите на страницу
localhost:8000/auth/jwt/create/ для создания access token путем представления username и password (т.е. методом POST)
С этим access token вам нужно установить его в MOD HEADER в Request Header и все готово.
Это JSON веб-токен, поэтому вам нужно префикс JWT и затем access token
