Придумайте для Twitter, Ошибка переполнения Cookie?
Я пытаюсь интегрировать twitter в приложение, используя этот guide. Я в основном беру все происходящее из facebook и подменяю его твиттером. Однако, когда я вхожу в твиттер, я получаю следующую ошибку:
ActionDispatch::Cookies::CookieOverflow (ActionDispatch::Cookies::CookieOverflow):
на следующем URL:
http://localhost:3000/users/auth/twitter/callback?oauth_token=something&oauth_verifier=blah
Есть ли хороший способ обойти эту проблему?
Спасибо!
Ответы
Ответ 1
Проблема заключается в session["devise.facebook_data"] = env["omniauth.auth"]
. Ответ Twitter содержит раздел extra
, который очень велик и не подходит для сеанса. Один из вариантов заключается в сохранении env["omniauth.auth"].except("extra")
в сеансе.
Ответ 2
Вы можете включить хранилище 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
и перенесите ее.