2011-08-19 22 views
27

Bu guide kullanarak twitter'i geliştirmeye çalışıyorum. Temelde facebook'un tüm oluşumunu alıp, twitter ile değiştiriyorum. Aşağıdaki urlTwitter, Çerez Taşması hatası için Devise?

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

: Ben twitter ile oturum Ancak, aşağıdaki hatayı alıyorum bu sorunu giderme etrafında almak için herhangi bir güzel yolu

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

var mı?

Teşekkürler!

cevap

73

Sorun, session["devise.facebook_data"] = env["omniauth.auth"] ile ilgilidir. Twitter'ın yanıtı, çok büyük ve oturuma sığmayan bir extra bölümü içeriyor. Bir seçenek, oturumda env["omniauth.auth"].except("extra") depolamaktır.

+5

"Fazladan" bölümüne ihtiyacım olmadığını anlayabilmek için, "request.env [" omniauth.auth "] 'ı kaldırdım. To_yaml' – dandrews

8

Oturum için ActiveRecord mağazasını açabilirsiniz. kullanmayla ilgili altındaki

yorumsuz hatları cookie_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 

raylar önce rails g session_migration göç ​​oluşturma ve göç active_record_store

comment dışarı kullanmayla ilgili hat config/başlatıcıları/session_store.rb içinde Bak o.

+1

herhangi bir dezavantajlı yan etki var mıdır? – courtsimas

+0

Oturum verileriniz 4K'dan büyükse etkin kayıt deposunu kullanmanız gerektiğine inanıyorum, bunu çerezde saklamaktan biraz daha yavaştır. –

+0

Bazı kutular açık kaynak kodları açık kaynak cms bu değişiklik ile çalışmak için başarısız, btw ... – courtsimas