Mam projekt django, używając django-rest-framework do tworzenia interfejsu API.Jak używać TokenAuthentication dla API w django-rest-framework
Chcesz użyć systemu uwierzytelniania z podstawą tokena, aby wywołanie api (wstawianie, wysyłanie, usuwanie) było wykonywane tylko dla autoryzowanego użytkownika.
Zainstalowałem "rest_framework.authtoken" i utworzyłem token dla każdego użytkownika.
Teraz, od django.contrib.auth.backends authenticate, zwraca użytkownika, z auth_token jako atrybutem. (po pomyślnym zalogowaniu).
Teraz moje pytanie brzmi: jak mogę wysłać token z prośbą o wpis do mojego api i po stronie api jak mogę sprawdzić, czy token jest ważny i należy do właściwego użytkownika?
Czy w aplikacji rest_framework.authtoken istnieją jakieś metody sprawdzania poprawności danego użytkownika i jego tokena? Nie znaleziono this Bardzo przydatne!
aktualizacji (zmiany zrobiłem): dodanych w tym w moim settings.py:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
)
}
także wysyłania token w moim nagłówku, ale jej jeszcze nie działa:
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)
Zasadniczo duplikat: http://stackoverflow.com/ pytania/14838128/django-rest-framework-token-authentication – jdero
nop, że post tylko mówi o tworzeniu tokenów - skończyłem z tą częścią, a teraz chcę wiedzieć, jak przekazać token przez żądanie HTTP i jak zweryfikować dany użytkownik i jego token. Żadne ciało nie mówi o tej części. – Peter
Jest to bardzo dobrze udokumentowane w dokumentacji django-rest-framework. Po stronie klienta dodajesz nagłówek do wszystkich żądań HTTP, a django-rest-framework robi resztę po stronie serwera. Jeśli podałeś poprawny token, będziesz mieć poprawnego użytkownika jako request.user – jasisz