/api-auth/login/
संसाधन केवल ब्राउज़बल एपीआई में प्रमाणीकरण के लिए है। सत्र प्रमाणीकरण का उपयोग करने के लिए, आपको पहले एक सत्र बनाना होगा। आपके पास एक लॉगिन संसाधन होना चाहिए, जो उपयोगकर्ता प्रमाण-पत्र स्वीकार करता है और Django प्रमाणीकरण प्रणाली का उपयोग कर उपयोगकर्ता को प्रमाणित करता है। उस संसाधन का अनुरोध करने पर क्लाइंट एक कुकी हेडर होगा। एएमडी कुकी को आगे के अनुरोधों में उपयोग करना चाहिए।
curl -v -X POST https://example.com/api/user/login/ -d 'username=user&password=pass'
...
> Set-Cookie: csrftoken=TqIuhp8oEP9VY32tUDcfQyUwn3cqpYCa; expires=Fri, 15-May-2015 12:48:57 GMT; Max-Age=31449600; Path=/
> Set-Cookie: sessionid=4yb4s456lbvd974oijbdha7k3l6g52q3; expires=Fri, 30-May-2014 12:48:57 GMT; Max-Age=1209600; Path=/
डीआरएफ मूल प्रमाणीकरण का भी समर्थन करता है। आप इसे प्रारंभ में उपयोगकर्ता प्रमाणीकृत करने और सत्र बनाने के लिए उपयोग कर सकते हैं। यहाँ एक उदाहरण है:
from django.contrib.auth import login
from rest_framework.authentication import BasicAuthentication, SessionAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
class MyBasicAuthentication(BasicAuthentication):
def authenticate(self, request):
user, _ = super(MyBasicAuthentication, self).authenticate(request)
login(request, user)
return user, _
class ExampleView(APIView):
authentication_classes = (SessionAuthentication, MyBasicAuthentication)
permission_classes = (IsAuthenticated,)
def get(self, request, format=None):
content = {
'user': unicode(request.user),
'auth': unicode(request.auth), # None
}
return Response(content)
तो मैं अपने एपीआई के लिए एक कस्टम दृश्य क्या करना है? Django रीस्ट ढांचे में ऐसी कोई चीज़ शामिल नहीं है? – jul
धन्यवाद, लेकिन मैं इसका उपयोग कैसे कर सकता हूं? मैंने आपके कोड की प्रतिलिपि बनाई, 'url (r'^rest/login/$ ', views.ExampleView.as_view()), 'my urls.py पर जाएं और' कोई नहीं टाइप करें 'ऑब्जेक्ट' उपयोगकर्ता 'में नहीं है, _ = सुपर (MyBasic प्रमाणीकरण, स्वयं)। प्रमाणीकरण (अनुरोध) 'curl -i -X POST की कोशिश करते समय http://127.0.0.1:8000/rest/login/ -d "उपयोगकर्ता = उपयोगकर्ता और पासवर्ड = पास" ' – jul
आप उपयोग कर सकते हैं उस विशेष कार्यान्वयन को इस तरह से: 'curl -i -X प्राप्त करें http://127.0.0.1:8000/rest/login/ -u उपयोगकर्ता: पास' इस तरह आप बुनियादी प्रमाणीकरण का उपयोग कर कर्ल के साथ प्रमाणित करते हैं। – YAtOff