तैनात करने के बाद टोकन एप्लिकेशन पर हमारे रूबी को तैनात करने के लिए हम इंजनयार्ड क्लाउड का उपयोग कर रहे हैं। हम रेल v2.3.3 चला रहे हैं।रेल - अमान्य प्रामाणिकता टोकन
इंजनयार्ड क्लाउड कैपिस्ट्रानो के समान तरीके से एडब्ल्यूएस उदाहरणों पर तैनात करता है। प्रत्येक तैनाती के बाद, हम अमान्य प्रामाणिकता टोकन त्रुटियों में चल रहे हैं। विशेष रूप से, कोई भी उपयोगकर्ता जिसने पहले हमारे आवेदन का दौरा किया था और फिर तैनाती के बाद विज़िट करता है और फिर फॉर्म सबमिट करने का प्रयास करता है, उसे अमान्य प्रामाणिकता टोकन त्रुटि मिलती है। यह त्रुटि तब तक बनी रहती है जब तक वे साइट के लिए अपनी कुकीज़ रीसेट नहीं करते। अपनी कुकीज़ को रीसेट करने के बाद, साइट बिना किसी त्रुटि के अपेक्षित काम करती है।
हम ActiveRecord के सत्र स्टोर का उपयोग कर रहे हैं और सत्र डेटाबेस में सहेजे जा रहे हैं।
ActionController :: InvalidAuthenticityToken /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/request_forgery_protection.rb:
यह त्रुटि हम जो देख रहे है: 79: `में verify_authenticity_token '
सत्र वस्तु शून्य तैनाती के बाद है, तथापि, सत्र डेटा अभी भी डेटाबेस में बनी रहती है और सत्र ID कुकी अभी भी मौजूद है:
सत्र:
- सत्र id: शून्य
- डेटा: शून्य
हम इस एक व्याख्या करने में सक्षम नहीं किया गया है। मूल कारण क्या हो सकता है पर कोई विचार?
किसी भी सुझाव के लिए धन्यवाद!
संपादित करें: इस पर अपडेट करने के लिए, हम त्रुटि का एक उदाहरण अलग करने में सक्षम हैं।
1) उपयोगकर्ता भार फार्म 2) कोड सर्वर पर अद्यतन किया जाता है 3) उपयोगकर्ता प्रस्तुत प्रपत्र ** अमान्य प्रामाणिकता टोकन त्रुटि तब होती है
ऐसा लगता है कि जब पर्यावरण परिवर्तन, रेल के साथ इस संभालने में असमर्थ है प्रामाणिकता टोकन।
हम को हल करने के लिए कई कदम की कोशिश की है:
- सत्र
- सत्र कुकी हटाया जा रहा है (दोनों जावास्क्रिप्ट में और रेल)
- रीसेट किया जा रहा कोड की तैनाती के बाद डेटाबेस में सत्र तालिका वाइप हो रहा है
कुछ भी काम नहीं करता है। काम करने वाली एकमात्र चीज उपयोगकर्ता को अपने कुकीज़ क्लाइंट-साइड को साफ़ कर रही है।
(हम गुगलिंग (यहां तक कि Binging की कोशिश की!) जवाब के लिए, लेकिन कोई पासा नहीं है।यह एक समान संबंधित मुद्दा प्रतीत होता है: http://railsforum.com/viewtopic.php?id=21479)
इसके अलावा: शुरू में हमने सोचा था कि यह इंजनयार्ड पर हमारी तैनाती के लिए अलग था, लेकिन हम इसे हमारे विकास सर्वर पर पुन: पेश करने में भी सक्षम हुए हैं जिसे हम Capistrano के माध्यम से तैनात करते हैं।
किसी भी विचार को कृतज्ञता से स्वीकार किया जाएगा।
धन्यवाद!
मेरे पास अभी जवाब देखने के लिए समय नहीं है, लेकिन आप रेल स्रोत में जाना चाहते हैं और देखें कि ऑथ टोकन कैसे उत्पन्न होता है। यह हो सकता है कि सर्वर पुनरारंभ करना उस मान को बदल रहा है जिसका उपयोग टोकन के बीज में किया जाता है। – Rafe