django авторизация токена оставшейся инфраструктуры - PullRequest
0 голосов
/ 04 апреля 2020

Я занимаюсь обучением, и у меня проблема с доступом к данным с токеном авторизации. Я изменил в файле settings.py

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.IsAuthenticated',
),

Я генерирую пользователей и токены для них, если я пытаюсь получить GET, ответом является

{"detail":"Authentication credentials were not provided."}curl: (6) Could not resolve host: Token
curl: (6) Could not resolve host: e7e9047a515b141209ace33597b53771ef8f5483'

Я использовал запятую: curl -X GET http://127.0.0.1:8000/api/example/ -H 'Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b' из https://riptutorial.com/django-rest-framework/example/28222/using-curl конечно с моим токеном и адресом

enter image description here

Если я изменю 'rest_framework.permissions.IsAuthenticated' на 'rest_framework.permissions.AllowAny' и использую curl -X GET http://127.0.0.1:8000/api/v1/friends/ нет проблем, я получаю json форму базы данных. Я не знаю, что я делаю не так: (

1 Ответ

0 голосов
/ 04 апреля 2020

Попробуйте добавить это в файл settings.py

INSTALLED_APPS = (
    ....
    'rest_framework',
    'rest_framework.authtoken',  # <-- Here
    ....
)

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication', 
    ],
    'DEFAULT_PERMISSION_CLASSES': (
       'rest_framework.permissions.IsAuthenticated',
    ),
}

, чтобы получить токен. Вы можете выполнить эту команду

python manage.py drf_create_token username

Для получения дополнительной информации см. это сообщение в блоге

...