Vorrei revocare il token precedente ogni volta che un utente effettua l'accesso. Ciò significherebbe generare un nuovo token (o almeno modificare la chiave dell'entità del modello esistente). Sembra tutto molto semplice, ma nei documenti DRF, non vedo alcuna menzione di questo scenario. I documenti sembrano assumere che il token rimanga sempre lo stesso. È solo un caso, o mi manchi qualcosa? La mia domanda è: C'è qualcosa di sbagliato nel cambiare il token ogni volta che un utente accede?Cambia token per TokenAuthentication ogni volta che l'utente esegue il login
risposta
Il TokenAuthentication
fornito da Django REST Framework è destinato a essere utilizzato per casi semplici in cui il token non ha mai bisogno di cambiare e vi è un solo token per un utente.
I documenti sembrano presupporre che il token rimane sempre lo stesso.
Questo è corretto. Qualsiasi cosa extra deve essere implementata in modo indipendente.
mi piacerebbe di revocare la prima pedina ogni volta che un utente accede a.
È possibile farlo nella vista di autenticazione, eliminando eventuali gettoni per l'utente che ha effettuato l'accesso.
Se si utilizzano le viste fornite per l'autenticazione del token, sarà necessario ottenere subclass them per ottenere sempre un nuovo token per l'utente.
class ObtainAuthToken(APIView):
throttle_classes =()
permission_classes =()
parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
renderer_classes = (renderers.JSONRenderer,)
def post(self, request):
serializer = AuthTokenSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
Token.objects.filter(user=the_user).delete()
token, created = Token.objects.create(user=user)
return Response({'token': token.key})
Ciò invalida sempre la chiave precedente e genera una nuova chiave.
- 1. La tela si ridisegna automaticamente ogni volta che qualcosa cambia?
- 2. Imposta una variabile bash ogni volta che la directory cambia
- 3. C virgola mobile cambia il valore% d ogni volta eseguita
- 4. Sugar ORM ha bisogno di record da salvare ogni volta che si esegue il test dell'unità?
- 5. Perché è necessario svuotare il pool di connessione ogni volta che si esegue nuovamente la distribuzione?
- 6. Come utilizzare TokenAuthentication per API in django-rest-framework
- 7. Laravel 4 - Il token CSRF non cambia mai
- 8. Caricatore di token per il login di flask
- 9. Django REST Framework: utilizzo di TokenAuthentication con l'API navigabile
- 10. Stessi numeri casuali ogni volta che eseguo il programma
- 11. /dev/HAX manca ogni volta che riavviare il computer
- 12. Come si esegue un'azione in drupal ogni volta che viene salvato un nodo?
- 13. Ogni volta che apro Visual Studio, l'errore EnableRaisingEvent di FileSystemWatcher cambia
- 14. Come eseguire un codice ogni volta che cambia un valore del widget Tkinter?
- 15. Rilevamento ogni volta che il socket viene disconnesso utilizzando select()
- 16. Schermo bianco vuoto ogni volta che eseguo il simulatore iOS
- 17. Quale funzione viene chiamata ogni volta che l'URL cambia in AngularJS?
- 18. Come impedire a Android di ridisegnare l'intero schermo ogni volta che qualcosa cambia?
- 19. Verifica login su ogni attività
- 20. excel VBA esegue automaticamente macro ogni volta che viene modificata una cella
- 21. Come faccio a triggerare qualcosa ogni volta che WindowState cambia in C#?
- 22. esegue `nvm use` automaticamente ogni volta che c'è un file .nvmrc nella directory
- 23. Come si esegue il codice una sola volta e solo una volta in Swift?
- 24. Android AlertDialog con testo che cambia dinamicamente ad ogni richiesta
- 25. ASP.NET MVC 2 VirtualPathProvider GetFile ogni volta per ogni richiesta
- 26. cmake & gcc compila ogni file ogni volta
- 27. La lista python (set (a)) cambia ogni volta il suo ordine?
- 28. Apache Solr: lo slave si replica più di 10 volte ogni volta che esegue il polling (commit eccessivo?)
- 29. django admin login improvvisamente esigente token csrf
- 30. Come faccio a interrompere una textarea scorrendo verso l'alto ogni volta che cambio il suo valore
Grazie mille @ kevin-brown. Risposta grande, chiara e completa. – jacob