2011-08-19 13 views
27

मैं इस guide का उपयोग कर ट्विटर को एकीकृत करने की कोशिश कर रहा हूं। मैं मूल रूप से फेसबुक के सभी अवसरों को लेता हूं और ट्विटर के साथ इसे प्रतिस्थापित करता हूं।ट्विटर के लिए देवता, कुकी ओवरफ़्लो त्रुटि?

ActionDispatch::Cookies::CookieOverflow (ActionDispatch::Cookies::CookieOverflow): 

इस यूआरएल पर: हालांकि, जब मैं चहचहाना साथ साइन-इन, मैं निम्न त्रुटि हो रही है

http://localhost:3000/users/auth/twitter/callback?oauth_token=something&oauth_verifier=blah 

वहाँ इस समस्या को ठीक से बचने के लिए किसी भी अच्छा तरीका है?

धन्यवाद!

उत्तर

73

समस्या session["devise.facebook_data"] = env["omniauth.auth"] के साथ है। ट्विटर की प्रतिक्रिया में extra अनुभाग है जो बहुत बड़ा है और सत्र में फिट नहीं है। एक विकल्प इसके बजाय सत्र में env["omniauth.auth"].except("extra") स्टोर करना है।

+5

यह पता लगाने के लिए कि मुझे "अतिरिक्त" अनुभाग की आवश्यकता नहीं है, मैंने 'request request.env [" omniauth.auth "] का उपयोग किया। To_yaml' – dandrews

8

आप सत्र के लिए ActiveRecord स्टोर चालू कर सकते हैं। config/initializers/session_store.rb में देखो

टिप्पणी बाहर का उपयोग कर के बारे में रेखा: cookie_store तल पर

टिप्पणी हटाएं लाइनों का उपयोग कर के बारे में: active_record_store

# Use the database for sessions instead of the cookie-based default, 
# which shouldn't be used to store highly confidential information 
# (create the session table with "rails generate session_migration") 
MyApp::Application.config.session_store :active_record_store 

रेल से पहले प्रवास बनाएं rails g session_migration और विस्थापित यह।

+1

क्या कभी भी कोई हानिकारक दुष्प्रभाव हैं? – courtsimas

+0

मेरा मानना ​​है कि आपको केवल सक्रिय रिकॉर्ड स्टोर का उपयोग करना चाहिए यदि आपका सत्र डेटा 4K से बड़ा है, तो यह कुकी में इसे संग्रहीत करने से थोड़ा धीमा है। –

+0

बॉक्स में से कुछ रेल ओपन सोर्स सीएमएस इस परिवर्तन के साथ काम करने में विफल रहे हैं, बीटीडब्ल्यू ... – courtsimas

संबंधित मुद्दे