django reste sur le cadre de jeton d'authentification de déconnexion
J'ai mis en œuvre le Jeton d'Authentification selon la django repos cadre Docs.
Forme ce que j'ai lu, le Jeton d'Authentification de la DRF est assez simple - un jeton par l'utilisateur, le jeton n'a pas de date d'expiration et est valable pour une utilisation toujours (suis-je droit?).
Je comprends qu'il y a de meilleures pratiques de là, mais pour l'instant, la DRF jeton d'authentification est bien pour moi.
ma question est- quelle est la meilleure pratique pour déconnexion avec la normale DRF jeton d'authentification?
Je veux dire, lorsque l'utilisateur déconnecte, dois-je supprimer le jeton du côté client? et puis sur connexion récupérer le jeton de nouveau? dois-je supprimer le jeton et d'en générer un nouveau?
Quelqu'un avec de l'expérience avec cela?
OriginalL'auteur Ofek Agmon | 2015-06-09
Vous devez vous connecter pour publier un commentaire.
Ici que d'un simple point de vue que je suis en utilisant à la déconnexion:
Puis l'ajouter à votre
urls.py
:Désolé, mais ce
queryset
est-il utilisé?il ne fait rien, dans ce cas.
Nit: la déconnexion devrait être un post au lieu de get: stackoverflow.com/questions/3521290/logout-get-or-post
OriginalL'auteur gorus
IDÉE DE JETON D'AUTHENTIFICATION:
Normalement dans les services d'authentification, il y a une durée de vie associées à un jeton. Au bout d'un certain temps, le jeton obtiendrez expiré. Ici, nous obtenons un jeton d'accès qui a un moment de l'expiration envoyé par le serveur. Maintenant, le client doit envoyer ce jeton à chaque fois dans l'entête de la requête, de sorte que le serveur puisse identifier qui est l'utilisateur. Soit nous pouvons garder une trace de quand il expire ou on peut juste continuer à l'utiliser jusqu'à ce que nous obtenir un
INVALID_TOKEN
erreur. Dans ce cas, nous aurions à nouveau obtenir le jeton à partir du serveur.La durée de vie de l'access_token est indépendante de la session de connexion d'un utilisateur accorde l'accès à un client. OAuth2,permet de le dire, n'a pas de concept d'un utilisateur de connexion ou de déconnexion, ou d'une session. Le jeton est juste utilisé pour identifier l'utilisateur si il est qui il dit qu'il est.
Le jeton est unique pour l'utilisateur et le client. Vous pouvez enregistrer des cookies pour permettre à quelque chose comme souvenir de moi, mais sur le serveur, vous n'avez pas besoin de le supprimer. Quand le jeton arrive à expiration, le client doit envoyer une demande au serveur pour obtenir le jeton de nouveau.
Jeton d'Expiration dans DRF Jeton Authetication:
Actuellement, la FONDATION de Jeton d'authentification ne prend pas en charge cette fonctionnalité. Vous auriez à mettre en œuvre vous-même ou à un tiers package qui fournit cette fonctionnalité. Il doit vérifier jeton d'expiration et de lever une exception si le jeton a expiré.
À mettre en œuvre vous-même, vous pouvez sous-classe de la DRF Jeton d'Authentification de classe et ajouter votre logique.
Vous pouvez même utiliser un logiciel tiers django-repos-cadre date d'échéance,-jetons.
Quelques Références:
1. Jeton d'Authentification pour les API RESTful: si le jeton d'être changés périodiquement?
2. Comment Déconnexion d'une Application dans laquelle j'ai Utilisé OAuth2 Pour vous connecter Avec Google?
Oui, je pense qu'il n'existe aucune fonctionnalité de jeton d'expiration actuellement dans DRF Jeton d'authentification. Vous avez besoin de mettre en place votre propre logique de jeton d'expiration.
Cela pourrait peut-être aider. github.com/JamesRitchie/django-rest-framework-expiring-tokens
Aussi jeter un oeil à ce. stackoverflow.com/questions/14567586/...
OriginalL'auteur Rahul Gupta
Il sonne comme SessionAuthentication est ce que vous êtes vraiment à la recherche. Vous pouvez commencer à vous(login) à une session via BasicAuthentication ou TokenAuthentication. Ensuite, utilisez sessionid "jeton" pour le reste des appels d'api. Le "jeton" expire lorsque vous fermez la session ou dépasse un certain timing.
Si vous exécutez dans csrftoken problème en utilisant une authentification de session, cette pourrait être très utile.
OriginalL'auteur Diansheng