Подтвердить что ты не робот

Придумайте для 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

Есть ли хороший способ обойти эту проблему?

Спасибо!

4b9b3361

Ответ 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 и перенесите ее.