मैं अपनी साइट पर सामाजिक लॉगिन सत्र प्रमाणीकरण की अनुमति देने के लिए django-oneall का उपयोग कर रहा हूं। हालांकि यह django-rest-framework के लिए सुझाए गए लेखकों में से एक नहीं है, rest_framework.authentication.SessionAuthentication
django के डिफ़ॉल्ट सत्र प्रमाणीकरण का उपयोग करता है। तो मैंने सोचा कि यह एकीकृत करने के लिए काफी सरल होना चाहिए।पोस्ट पर 403 प्रतिक्रिया लौटने पर डीजेंगो-रेस्ट-फ्रेमवर्क, अनुमति दें, अनुमति दें अनुमति दें
अनुमतियों की तरफ, आखिरकार मैं IsAdmin
का उपयोग करूंगा, लेकिन विकास के उद्देश्यों के लिए, मैंने इसे IsAuthenticated
पर सेट किया था। जब वह 403 लौट रहा था, तो मैंने AllowAny
पर अनुमतियों को आराम दिया, लेकिन अभी भी कोई पासा नहीं है।
settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
# 'rest_framework.permissions.IsAuthenticated',
# 'rest_framework.permissions.IsAdminUser',
),
'PAGE_SIZE': 100,
'DEFAULT_FILTER_BACKENDS': (
'rest_framework.filters.DjangoFilterBackend',
),
}
संपादित करें:
लिए मैंने नीचे उत्तर के आधार पर कार्य कर ली यहाँ मेरी बाकी ढांचे config है। यह पता चला है कि rest_framework
दोनों csrftoken
कुकी और एक X-CSRFToken
समान मूल्य के शीर्षलेख की अपेक्षा करता है, मैंने अपने एजेक्स अनुरोधों के लिए हेडर भेजने के लिए अपना फ्रंट-एंड कोड सेट किया और सब ठीक काम किया।
हम्म ... मेरी एंबर एप्लिकेशन वास्तव में अनुरोध में CSRF कुकी गुजर रहा है साधते। मेरे पास मेरे आराम एपीआई के लिए अपाचे में एक रिवर्स प्रॉक्सी सेटअप है। शायद मुझे किसी भी तरह से मेरी रिवर्स प्रॉक्सी को संशोधित करने की आवश्यकता है, इसलिए यह csrf कुकी मान को 'HTTP_X_CSRFTOKEN' शीर्षलेख में कॉपी करता है? – ckot
मुझे लगता है कि मुझे हेडर में हमेशा csrftoken कुकी मान को पास करने के लिए एम्बर को कॉन्फ़िगर करना चाहिए। यह आसान होना चाहिए। – ckot
@ कॉट मैंने अपना जवाब अपडेट कर लिया है। भूल गए कि हेडर 'एक्स-सीएसआरएफटीकेन' और कुकी 'csrftoken' दोनों सेट किए जाने थे। – chucksmash