में लॉग इन करता है, जब भी उपयोगकर्ता लॉग इन करता है तो मैं प्रत्येक टोकन को निरस्त करना चाहता हूं। इसका मतलब है कि एक नया टोकन उत्पन्न करना (या कम से कम मौजूदा मॉडल इकाई की कुंजी बदलना)। यह सब सीधा लगता है, लेकिन डीआरएफ दस्तावेज़ों में, मुझे उस परिदृश्य का कोई उल्लेख नहीं दिखता है। दस्तावेज़ों को लगता है कि टोकन हमेशा रहता है। क्या यह सिर्फ एक साधारण मामला है, या क्या मुझे कुछ याद आ रहा है? मेरा सवाल है: क्या उपयोगकर्ता द्वारा लॉग इन किए जाने पर टोकन को बदलने में कुछ गड़बड़ है?टोकन प्रमाणीकरण के लिए टोकन बदलें प्रत्येक बार उपयोगकर्ता
7
A
उत्तर
12
Django REST Framework द्वारा प्रदत्त TokenAuthentication
का उपयोग उन साधारण मामलों के लिए किया जाना चाहिए जहां टोकन को कभी भी बदलने की आवश्यकता नहीं है, और उपयोगकर्ता के लिए केवल एक टोकन है।
दस्तावेज़ों को लगता है कि टोकन हमेशा वही रहता है।
यह सही है। अतिरिक्त कुछ भी स्वतंत्र रूप से लागू किया जाना है।
मैं पहले टोकन में हर बार रद्द करने के लिए किसी उपयोगकर्ता के लॉग चाहते हैं।
आप उपयोगकर्ता जो में लॉग ऑन है के लिए किसी भी टोकन को हटाने के द्वारा प्रमाणीकरण ध्यान में रखते हुए ऐसा कर सकते हैं।
from rest_framework.authtoken.models import Token
Token.objects.filter(user=the_user).delete()
यदि आप टोकन प्रमाणीकरण के लिए प्रदान किए गए विचारों का उपयोग कर रहे हैं, तो आपको उपयोगकर्ता के लिए हमेशा एक नया टोकन प्राप्त करने के लिए subclass them की आवश्यकता होगी।
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})
यह हमेशा पिछली कुंजी को अमान्य कर देगा और एक नई कुंजी उत्पन्न करेगा।
संबंधित मुद्दे
- 1. सिम्फनी - एपीआई टोकन के साथ प्रमाणीकरण - अनुरोध टोकन उपयोगकर्ता शून्य
- 2. प्रमाणीकरण टोकन
- 3. प्रमाणीकरण टोकन
- 4. टोकन प्रमाणीकरण और
- 5. क्रॉस डोमेन प्रमाणीकरण के लिए जेडब्ल्यूटी टोकन
- 6. उपयोगकर्ता प्रमाणीकरण के लिए व्यक्तिगत एक्सेस टोकन और जेसन वेब टोकन के बीच क्या अंतर है?
- 7. स्प्रिंग सिक्योरिटी टोकन आधारित प्रमाणीकरण
- 8. टोकन आधारित प्रमाणीकरण (Node.js में)
- 9. वसंत सुरक्षा 3.2 टोकन प्रमाणीकरण
- 10. आरईएसटी एपीआई टोकन-आधारित प्रमाणीकरण
- 11. टोकन आधारित प्रमाणीकरण की सुरक्षा
- 12. टोकन
- 13. मोबाइल उपकरणों के लिए PHP का उपयोग करके टोकन प्रमाणीकरण
- 14. डब्ल्यूसीएफ: उपयोगकर्ता नाम टोकन
- 15. आरईएसटी सेवाओं पर प्रमाणीकरण टोकन का बिंदु
- 16. रेल: स्क्रैच से टोकन प्रमाणीकरण
- 17. मोबाइल ऐप से टोकन-आधारित प्रमाणीकरण
- 18. टोकन
- 19. एपीआई टोकन
- 20. एंटीफॉर्गेरी फॉर्म फॉर्म प्रमाणीकरण के बिना टोकन
- 21. ग्रैडल: संपत्ति फ़ाइल से टोकन ढूंढकर टोकन को बदलें
- 22. अपवाद: सिम्फनी \ घटक \ सुरक्षा \ कोर \ प्रमाणीकरण \ टोकन \ उपयोगकर्ता नामपासवर्ड टोकन :: serialize() को एक स्ट्रिंग या NULL
- 23. बदलें {x} तार में टोकन
- 24. टोकन
- 25. आरईएसटी वेब सेवा प्रमाणीकरण टोकन कार्यान्वयन
- 26. टोकन
- 27. स्प्रिंग सुरक्षा टोकन प्रमाणीकरण - RESTful JSON सेवा
- 28. django rest framework - टोकन प्रमाणीकरण लॉगआउट
- 29. फेसबुक उपयोगकर्ता टोकन प्राप्त करें
- 30. एएसपी नेट वेब एपीआई प्रमाणीकरण टोकन समाप्ति?
बहुत बहुत धन्यवाद @ केविन-ब्राउन। महान, स्पष्ट, और पूरी तरह से जवाब। – jacob