5

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 です。アプリをテスト ストアにインストールし、テスト ストアの管理ページからアプリへのログインを試みることができます。

4

1 に答える 1

6

元々Shopifyアプリgemを使用して構築されたShopifyアプリの場合、レガシーからoAuth2認証ソリューションに切り替えるときは、Shopify管理リンクをファイナライズアクションではなく認証アクションにポイントする必要があります。したがって、次のことを行う必要があります。

Shopifyパートナー管理者に移動します

[アプリの詳細を編集]を押します

代わりに、認証アクションを指すように「アプリケーションURL」を更新してください。例:www.orderlyprint-staging.herokuapp.com/login/authenticate

これにより、Shopifyによって送信されたショップパラメータが抽出され、oAuth認証の最初のステップが実行されてから、完了のためにファイナライズアクションにリダイレクトされます。これにより、ユーザーがストアのURLを手動で入力しなくても、ユーザーが自動的にログインします。

于 2012-08-30T09:14:02.957 に答える