मेरे पास एक ऐसी क्रिया है जो एसएफगार्ड द्वारा सुरक्षित पोस्ट डेटा लेती है। इसका अर्थ यह है कि यदि उपयोगकर्ता लॉग इन नहीं है, तो POST डेटा लॉग इन फॉर्म में भेजा जाएगा। आमतौर पर, यह कोई समस्या नहीं है, उपयोगकर्ता लॉग इन करना जारी रखता है, और उसे फिर से डेटा जमा करना पड़ता है।सुरक्षित कार्रवाई के लिए POST अनुरोध भेजना
दुर्भाग्य से, लॉग इन फॉर्म POST डेटा का उपयोग कर रहा है जैसे कि यह फ़ॉर्म के साथ ही सबमिट किया गया था। इसका मतलब यह है कि यह शिकायत कर रहा है कि आवश्यक उपयोगकर्ता नाम और पासवर्ड फ़ील्ड गुम हैं, और यह शिकायत करता है कि इसमें सीएसआरएफ टोकन गुम है। फ़ॉर्म को सबमिट करने के बाद, यह आखिरी समस्या दूर नहीं जाती है, जिसका अर्थ है कि उपयोगकर्ता लॉग इन नहीं कर सकता है, वैसे भी।
उपयोगकर्ता लॉग इन नहीं होने पर फॉर्म के साथ प्रस्तुत नहीं किया जाना चाहिए, लेकिन उपयोगकर्ता के लिए अभी भी फॉर्म के साथ लॉग आउट करना संभव हो सकता है। इसलिए मैं इंटरफेस वॉटरटाइट और त्रुटि मुक्त रखने के हित में पूछ रहा हूं।
क्या यह एसएफगार्ड की कमी है, क्या इससे बचा जा सकता है, या क्या मैं कुछ गलत कर रहा हूं?
स्पष्ट करने के लिए मार्ग इस तरह दिखता है:
add_subgroup:
url: /group/:id/add
class: sfPropelRoute
options:
model: Group
type: object
param: { module: subgroups, action: create }
requirements:
group_id: \d+
sf_method: [post]
इस प्रकार अनुरोध सबमिट करने के लिए इस्तेमाल रूप है:
<form action="<?php echo url_for('add_subgroup', $group) ?>" method="post">
<input type="hidden" name="group_id" value="<?php echo $group->getId() ?>" />
<input type="text" name="subgroup_id" />
<input type="submit" class="button" value="Add" />
</form>
आप अधिक विशिष्ट हो सकता है आप एक लॉगिन फार्म या क्या करने की कोशिश कर रहे हैं? – Henry
मैं एक सुरक्षित कार्रवाई कॉल करने का प्रयास कर रहा हूं। यदि उपयोगकर्ता लॉग इन नहीं है, तो यह मौजूदा लॉगिन फॉर्म पर जाता है। चूंकि कार्रवाई को POST डेटा की आवश्यकता होती है, इसलिए यह पोस्ट डेटा फ़ॉर्म के साथ हस्तक्षेप कर रहा है। क्या आप इस बारे में अधिक विशिष्ट हो सकते हैं कि मुझे किस बारे में अधिक विशिष्ट होना चाहिए? – Druckles
यदि उपयोगकर्ता लॉग इन नहीं है तो आप कैसे हैंडलिंग कर रहे हैं? यदि आप हेडर रीडायरेक्ट जारी करते हैं तो POST डेटा साफ़ किया जाना चाहिए। यदि आप इसके बजाय इसमें शामिल हैं, तो POST डेटा मौजूद होगा। –