自分用メモ。
shopify_appを使用しているなら通常は
未ログイン状態の場合、ログイン画面に遷移し、omniauthを通じた認証が行われる。
認証後はセッションにShopify情報にアクセスするためのセッションが保存される。
ただ自分の場合、Activeadminと組み合わせて使用する。
その場合、ShopifyApp::AuthenticatedControllerを継承したコントローラをActiveadminでは
作れないっぽいので、どうにかしてShopifyログイン経由でActiveadminのコントローラにアクセスしたい。
そのためには、一度ShopifyApp::AuthenticatedControllerを継承したコントローラにアクセス後
リダイレクトして飛ばしてやればよい。
また各Activeadminコントローラに以下の設定をすれば
セッション切れを起こしてもログイン画面に遷移し、ログイン認証を再び行える。
controller do include ShopifyApp::LoginProtection before_action :login_again_if_different_shop around_action :shopify_session def index super end ... end
[参考]
https://github.com/Shopify/shopify_app/blob/b22824003af168298d727f639a49503d29ca2ac6/app/controllers/shopify_app/authenticated_controller.rb https://github.com/Shopify/shopify_app/blob/53b2807fed4c45590b3feb5445d05c702af6524b/lib/shopify_app/controller_concerns/login_protection.rb