Shopify アプリでレガシー認証から oauth2 認証に切り替えました。これで、ストアの管理ページ ([マイ アプリ] -> [アプリ]) からアプリにアクセスするたびに、(以前のように) ストアをアプリに直接ログインするのではなく、常にログイン ページにリダイレクトされます。
以下は、finalize メソッド内のコードです。
if response = request.env['omniauth.auth']
sess = ShopifyAPI::Session.new(params['shop'], response['credentials']['token'])
ShopifyAPI::Base.activate_session(sess)
session[:shopify] = sess
flash[:notice] = "Logged in"
redirect_to return_address
session[:return_to] = nil
else
flash[:error] = "Could not log in to Shopify store."
redirect_to :action => 'index'
end
ユーザーがストア管理ページからアプリにアクセスすると、リクエストに request.env['omniauth.auth'] が含まれず、ログイン ページにリダイレクトされます。これは、従来の認証メカニズムを使用していた場合とは異なります。
アプリの URL は www.orderlyprint-staging.herokuapp.com です。アプリをテスト ストアにインストールし、テスト ストアの管理ページからアプリへのログインを試みることができます。