У меня есть проект django, используя django-rest-framework для создания api.Как использовать TokenAuthentication для API в django-rest-framework
Хотите использовать систему аутентификации на основе токена, так что вызов api (put, post, delete) будет выполняться только для авторизованного пользователя.
Я установил 'rest_framework.authtoken' и создал токен для каждого пользователя.
Итак, теперь из django.contrib.auth.backends аутентифицируется, он возвращает пользователя с атрибутом auth_token. (при успешном входе в систему).
Теперь мой вопрос в том, как я могу отправить токен с запросом на отправку в api и на стороне api, как я могу проверить, является ли токен действительным и принадлежит к правильному пользователю?
Есть ли методы в приложении rest_framework.authtoken для проверки данного пользователя и его токена? не найдено this Очень полезно!
Update (изменения, которые я сделал): Добавленного это в моем settings.py:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
)
}
отправки Также Токен в моей голове, но его до сих пор не работает:
if new_form.is_valid:
payload= {"createNewUser":
{ "users": request.POST["newusers"],
"email": request.POST["newemail"]
}
}
headers = {'content-type' : 'application/json',
'Authorization': 'Token 6b929e47f278068fe6ac8235cda09707a3aa7ba1'}
r = requests.post('http://localhost:8000/api/v1.0/user_list',
data=json.dumps(payload),
headers=headers, verify=False)
основном дубликат: http://stackoverflow.com/ questions/14838128/django-rest-framework-токен-аутентификация – jdero
nop Этот пост только говорит о создании токенов - я закончил с этой частью, и теперь хочу знать, как передать токен через HTTP-запрос и как проверить данного пользователя и его токена. Ни одна из них не говорит об этой части. – Peter
Это хорошо документировано в документации django-rest-framework. На стороне клиента вы просто добавляете заголовок ко всем HTTP-запросам, а django-rest-framework делает все остальное на стороне сервера. Если был предоставлен действительный токен, у вас будет правильный пользователь в качестве request.user – jasisz