Auth0でカスタムドメインを設定したあと、
アプリケーションがエラーを吐くようになった。
1 |
{"error":"access_denied","error_description":"Service not enabled within domain: https://example.com/api/v2/"} |
カスタムドメインは認証用のURLのため、Clientを使ってAPIを呼び出すときには、カスタムドメインではなくデフォルトのテナント名+Auth0ドメインでなくてはいけない。
下記のように、Auth0初期設定時に決めるやつ。
1 |
https://<default-tenant-name>.auth0.com/api/v2/ |
Omniauthとruby-auth0を組み合わせている場合、同じ値を参照しているケースがありとまどった。
Auth0 Clientを下記のように呼び出している場合、
Ominiauthと競合するため別の値を参照するようにする。
エラー起こしていたときの、omniauthはこんなん
1 2 3 4 5 6 7 8 9 |
Rails.application.config.middleware.use OmniAuth::Builder do provider( :auth0, Rails.application.credentials.app.auth0_client_id, Rails.application.credentials.app.auth0_client_secret, Rails.application.credentials.app.auth0_domain, callback_path: '/auth/auth0/callback' ) end |
Auth0 Clientの初期化の処理は下記。
domainにカスタムドメインは使えなかった。
1 2 3 4 5 6 7 8 |
def auth0_client @auth0_client ||= Auth0Client.new( client_id: Rails.application.credentials.aapp.auth0_client_id, client_secret: Rails.application.credentials.app.auth0_client_secret, domain: Rails.application.credentials.app.auth0_domain, api_version: 2 ) end |
APIとして使うときは、カスタムドメインはだめ。
これ覚えておきましょう。
じゃあね〜〜〜〜。