मेरे पास वर्तमान में मेरे पृष्ठ पर फॉर्म हैं, जो इस पर ध्यान दिए बिना कि उपयोगकर्ता लॉग इन है या नहीं। एक बार जब उपयोगकर्ता लॉग इन करता है, तो उन्हें इन रूपों में से एक के साथ प्रस्तुत किया जाता है (जो सीएसआरएफ का उपयोग करते हैं)।प्रमाणीकरण पर सीएसआरएफ को पुन: उत्पन्न/अमान्य करना बंद करें
समस्या यह है कि यदि यह बॉक्स प्रमाणीकरण के बाद प्रस्तुत किया जाता है, तो सीएसआरएफ टोकन को अवैध कर दिया जाता है।
CSRF टोकन अमान्य है: मैं अपने आप को प्रमाणीकरण की जांच और
$form->isValid()
रिटर्नtrue
जबकि प्रवेश के बाद बिना प्रपत्र प्रस्तुत करने के लिए अनुमति देकर इस की पुष्टि की है, यह मेरे की त्रुटि के साथfalse
देता है। फॉर्म को पुनः सबमिट करने का प्रयास करें। पुनः/अमान्य CSRF प्रमाणीकरण पर टोकन, हटाने CSRF इन रूपों से टोकन या प्रमाणीकरण के बाद मेरे फ़ॉर्म तैयार से Symfony रोक (मैं नहीं बल्कि इससे बचने चाहते हैं तथापि,) -
मुझे लगता है कि तीन समाधान कर रहे हैं। मेरा वर्तमान समाधान प्रमाणीकरण के साथ एक नया सीएसआरएफ टोकन वापस पास करना है और फॉर्म टोकन input
मान सेट करना है।
अतिरिक्त: क्या किसी को पता है कि वर्तमान में असाइन किए गए सभी सीएसआरएफ टोकन को कैसे देखना है? सत्र उन्हें पकड़ने के लिए प्रतीत नहीं होता है।
पृष्ठ लॉगिन के बाद पुनः लोड नहीं होता है? – lsouza
@ हिसामु नो, लॉगिन AJAX का उपयोग करके किया जाता है, इसलिए उपयोगकर्ता लॉग इन करता है और फिर मैं सफल लॉगिन पर एक फॉर्म खोलता हूं। यह वह बिंदु है जहां टोकन अवैध हो जाते हैं (प्रतीत होता है)। अगर मुझे पता था कि सभी टोकन कहां देखना है, तो मैं इसे और अधिक डीबग करने में सक्षम हूं। – Prisoner
शायद आप अन्य टोकन पुन: उत्पन्न कर सकते हैं? देखें: http://stackoverflow.com/a/11632713/209585 – lsouza