Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Devise for Twitter, Cookie Overflow error?

I am trying to integrate twitter into devise using this guide. I basically take all occurence of facebook and substitue it with twitter. However, when I sign in with twitter, I am getting the following error:

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

at the following url:

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

Is there any nice way to get around fixing this problem?

Thanks!

like image 911
disappearedng Avatar asked Aug 19 '11 05:08

disappearedng


Video Answer


2 Answers

The problem is with session["devise.facebook_data"] = env["omniauth.auth"]. Twitter's response contains an extra section that is very large and does not fit in the session. One option is to store env["omniauth.auth"].except("extra") in the session instead.

like image 148
Behrang Avatar answered Oct 12 '22 10:10

Behrang


You can turn on ActiveRecord store for session. Look in config/initializers/session_store.rb

comment out the line about using :cookie_store

uncomment the lines at the bottom about using :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 

Create migration before rails rails g session_migration and migrate it.

like image 26
Mikhail Nikalyukin Avatar answered Oct 12 '22 12:10

Mikhail Nikalyukin