LoginSignup
1
1

More than 1 year has passed since last update.

Shopify アプリの scope 再認証がうまく行かない時(Ruby on Rails)

Last updated at Posted at 2021-03-27

背景

scope に変更があった際は再認証を行う必要があります。
そこで以下の様な URL にユーザーを redirect するよう実装していたのですが、無限ループが発生したりどうにもうまく行かない状況でした。

https://{shop}.myshopify.com/admin/oauth/authorize?client_id={api_key}&scope={scopes}&redirect_uri={redirect_uri}&state={nonce}

参照: Ask for permission | Shopify Developers
参照: Infinite redirect between /login, Home#index, and /granted_storage_access | shopify_app

解決策

omniauth-shopify-oauth2 の下記の issue に回答があるように、シンプルに /login にアクセスする事で再認証画面に遷移されました。
https://github.com/Shopify/omniauth-shopify-oauth2

https://{shop}.myshopify.com/admin/apps/{app_name}/login

注意点

  • /login にアクセスする前に config/initializers/shopify_app.rb 等で定義されている scope をまずは更新する必要があります。(サーバーの再起動も忘れずに)
  • 既に認証されている scope と新しい scope に差分がある場合のみ再認証画面に遷移されます。
  • shopify_app v17.1.0 からは再認証処理を自作しなくて良くなりました。

参照

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1