/ / Jak zalogować użytkowników za pomocą poczty e-mail i wylogować je za pomocą tokenów internetowych JSON Django Rest Framework? - python, django, reszta, django-rest-framework

Jak zalogować użytkowników za pomocą poczty e-mail i wylogować je za pomocą tokenów internetowych JSON Django Rest Framework? - python, django, reszta, django-rest-framework

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:

  1. Jak unieważnić token za pomocą curl? Muszę to zrobić, gdy użytkownik się wyloguje.
  2. Gdzie są te żetony przechowywane w DB? Po wdrożeniu django-rest-framework-jwtNie widzę żadnych nowych tabel w moim interfejsie Django Admin
  3. 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
  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.
  2. 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.
  3. Powinno to być możliwe dzięki niestandardowemu zapleczu Django.