Mam istniejącą, działającą aplikację Django, która implementuje wiele interfejsów API Django-REST. Właśnie dodałem uwierzytelnianie użytkownika za pomocą Django-rest-framework-JWT a teraz próbuję się tego nauczyć. Weryfikowałem, że wydaje mi token, gdy wykonuję następujące zawijanie:
curl -X POST -d "username=myuser&password=mypassword" http://localhost:3050/api-token-auth/
Ale mam serię pytań, których nie widzę w dokumentach. Proszę odpowiedzieć na następujące pytania:
- Jak unieważnić token za pomocą curl? Muszę to zrobić, gdy użytkownik się wyloguje.
- Gdzie są te żetony przechowywane w DB? Po wdrożeniu
django-rest-framework-jwt
Nie widzę żadnych nowych tabel w moim interfejsie Django Admin - Chciałbym umożliwić moim użytkownikom logowanie się przy użyciu ich nazw użytkownika lub ich e-maile. Więc chciałbym zawinąć
api-token-auth
punkt końcowy w niestandardowym punkcie końcowym, który sprawdza, czydany ciąg to e-mail lub nazwa użytkownika. Jeśli e-mail, sprawdzę nazwę użytkownika. Następnie wywołaj autoryzację api-token. Jak powinien wyglądać ten punkt końcowy? Nie wiem, jak to owinąćapi-token-auth method
.
Odpowiedzi:
8 dla odpowiedzi № 1- Podczas używania JWT do uwierzytelniania zazwyczaj przechowujesz token w folderze localstorage lub sessionstorage przeglądarki. Aby się wylogować, wystarczy usunąć token. Nie ma nic więcej do unieważnienia.
- Jedną z korzyści wynikających z zastosowania tego rodzaju podejścia do uwierzytelniania jest to, że tokeny nie są przechowywane w bazie danych, więc nie musisz wysyłać zapytań do magazynu sesji o nic podczas uwierzytelniania.
- Powinno to być możliwe dzięki niestandardowemu zapleczu Django.