2015-01-09 25 views
6

O ile to zrozumiałe, widok obtain_auth_token działa jako funkcja logowania. Podajesz referencje i odzyskujesz token. Co będzie wylogowaniem? Czy powinienem usunąć token przy wylogowaniu? Jaka byłaby najlepsza praktyka?django-rest-framework Token Auth i wylogowanie

Jeśli usuwanie jest OK, to w jaki sposób obsługiwać wielu klientów jednocześnie. Załóżmy, że użytkownik wylogowuje się z urządzenia mobilnego, ale chce pozostać zalogowany w sieci. Model Token ma obecnie relację OneToOne z .

Proszę, udziel mi porady. Dzięki

Odpowiedz

12

The TokenAuthentication dostarczone przez Django REST ramy jest przeznaczony do użycia jako bardzo prosty uwierzytelnienie token. Co mam na myśli to, masz

Jeśli szukasz czegoś bardziej zaawansowanego, zazwyczaj musisz sprawdzić inną metodę uwierzytelniania tokena. Może to być tak proste, jak podklasy klas i widoków TokenAuthentication (jako połączone), ale model Token nie daje się łatwo wymieniać. Oznacza to, że zmiana pola user na ForeignKey, pozwalająca na posiadanie wielu tokenów dla użytkownika, nie jest łatwa do wdrożenia.

Na szczęście, struktura Django REST does support other authentication methods, taka jak OAuth i JSON Web Tokens, które obsługują wiele tokenów dla użytkowników. Można znaleźć porównanie wspólnych klas uwierzytelniania at this Stack Overflow answer.

+0

Dzięki. Początkowo myślałem o rozszerzeniu tokena, ale teraz, gdy powiedziałeś, że to nie jest trywialne, dam ci [django-rest-framework-jwt] (https://github.com/GetBlimp/django-rest-framework-jwt) . Wygląda obiecująco. – norbertpy