में रेल सीएसआरएफ प्रामाणिकता टोकन वाले पृष्ठों को कैसे संभालें, हमारे रेल एप्लिकेशन में, उपयोगकर्ताओं के लिए एक ही समय में कई घंटे या दिन के लिए खुले ब्राउज़र टैब खोलना आम बात है। समस्या तब होती है जब इनमें से किसी एक टैब में, उपयोगकर्ता लॉग आउट करता है, फिर वापस लॉग इन करता है (या सत्र समाप्त हो जाता है और एक नया सत्र बनाया जाता है)।रेल
यह अन्य सभी टैबों पर सीएसआरएफ प्रामाणिकता टोकन को अमान्य बनने का कारण बनता है। यदि वे किसी भी फॉर्म को सबमिट करने का प्रयास करते हैं या ताज़ा किए बिना उन टैब पर कोई AJAX अनुरोध करते हैं, तो उन्हें एक त्रुटि मिलेगी (और वास्तव में लॉग आउट हो जाएंगे क्योंकि खराब प्रमाणीकरण टोकन पास होने पर डिफ़ॉल्ट रेल व्यवहार होता है)।
यह व्यवहार स्पष्ट रूप से अवांछनीय है। मैं सोच रहा था कि लोग ऐसी परिस्थितियों को गहन तरीके से संभालने के लिए क्या करते हैं जहां उपयोगकर्ता के पास आपकी साइट पर एक विंडो खुलती है लेकिन प्रामाणिकता टोकन पुराना है।
जो मैं नहीं करना चाहता हूं वह सिर्फ उन्हें लॉगिन पृष्ठ पर रीडायरेक्ट कर रहा है, क्योंकि तब वे अपना काम खो सकते हैं, उदाहरण के लिए वे लंबे ब्लॉग पोस्ट या कुछ लिख रहे हैं।
जो समाधान दिमाग में आता है वह कुछ जावास्क्रिप्ट होना है जो या तो सर्वर को यह जांचने के लिए मतदान करता है कि प्रामाणिकता टोकन बदल गया है या सत्र की बदली गई है या नहीं, यह जांचने के लिए उपयोगकर्ता की कुकीज़ का चुनाव करें। मैंने कभी इनमें से किसी एक को करने के बारे में कभी नहीं सुना है, इसलिए मैं देखना चाहता था कि समुदाय ने क्या सोचा था।
आप सही हैं, लॉग इन/आउट नए सीएसआरएफ टोकन पीढ़ी का कारण नहीं बना रहा है। ऐसा लगता है कि यह अवैध टोकन त्रुटियां कहां से आ रही हैं, यह पता लगाने के लिए ड्रॉइंग बोर्ड पर वापस आ गया है। – Jacob