現在、私たちはOmniauthとDeviseTokenAuthでRails 5 APIを実装しています。Rails 5 API OmniauthはActiveRecordセッションストアを使用します
最初の部分はうまくいくようですが、トークンを検証してさらに何かをしようとすると、CookieOverflowエラーが発生します。これはOmniauthのログイン情報が> 4KB以上保存されていることが原因であると推測しました。
私たちは、データベースのストアドセッションに旋回するが、我々はclass AddSessionsTable < ActiveRecord::Migration
def change
create_table :sessions do |t|
t.string :session_id, :null => false
t.text :data
t.timestamps
end
add_index :sessions, :session_id, :unique => true
add_index :sessions, :updated_at
end
end
を次のように私達のデータベースの移行がある
gem 'activerecord-session_store'
を使用している
NoSessionError: You must provide a session to use OmniAuth
Omniauth
からエラーを取得するために継続することを試み最後に、confiに設定しましたグラム/ application.rbセッションストア
config.session_store :active_record_store, :key => '_my_app_session'
eはあなたのエラーがOmniAuthを使用するためのセッションを提供する必要があります取得し続けるwhyw私はわかりません。これをcookiestoreに戻した場合
config.middleware.use ActionDispatch::Flash
config.middleware.use ActionDispatch::Cookies
config.middleware.use ActionDispatch::Session::CookieStore
アプリはセッションを認識してCookieOverflowエラーをスローします。
。 'rake middleware'を実行し、omniauthの前にミドルウェアがスタックに入っていることを確認してください。セッションが正しく初期化されません。 – phoet