代替ログアウトでユーザーをリダイレクトする
ログアウト後にユーザーを特定のURLにリダイレクトできます。テナントまたはアプリケーションの設定で、リダイレクトURLを登録する必要があります。Auth0は、ログアウト後に許可リストURLのみにリダイレクトします。各アプリケーションごとに異なるリダイレクトが必要な場合は、アプリケーション設定の許可リストにURLを追加できます。
ターゲットをURL値として、
returnTo
クエリ文字列パラメーターを追加します。渡されるリダイレクト先のURLをエンコードします。たとえば、ログアウト後にユーザーをhttps://www.example.com
にリダイレクトするには、以下の要求を作成します。https://{yourDomain}/v2/logout?returnTo=https%3A%2F%2Fwww.example.com
.以下の2つの場所のいずれかに、[Allowed Logout URLs(許可されているログアウトURL)]として、エンコードされていない
returnTo
URL(例:https://www.example.com
)を追加します。Tenant Settings(テナント設定):
client_id
パラメーターを含まないログアウト要求については、[Tenant Settings(テナント設定)]の[Advanced(高度な設定)]タブの[Allowed Logout URLs(許可されているログアウトURL)]リストにreturnTo
URLを追加する必要があります。ユーザーがテナントレベルでログアウトした後にリダイレクト先となるURLのリストを追加するには、Auth0 Dashboard.の[Tenant Settings(テナント設定)] > [Advanced(高度な設定)] に移動します。
Auth0のApplication Settings(アプリケーションの設定):
client_id
パラメーターを含むログアウト要求については、関連するAuth0アプリケーションの[Settings(設定)]タブの[Allowed Logout URLs(許可されているログアウトURL)]リストにreturnTo
URLを追加する必要があります。
URLリストを提供する際には、以下を行うことができます。
複数の有効なURLをカンマ区切りで指定する
*
をサブドメインのワイルドカードとして使用する(例:http://*.example.com
)
client_id
パラメーターが含まれていて、returnTo
URLが設定されていない場合は、サーバーは、Dashboardに設定されている最初の[Allowed Logout URLs(許可されているログアウトURL)]にユーザーをリダイレクトします。
検証エラーを避けるために、URLのプロトコルの部分を必ず含めます。たとえば、*.example.com
に値を設定すると、検証エラーが発生するので、代わりに、http://*.example.com
を使用します。
フェデレーションログアウト
いくつかのプロバイダーは、フェデレーションログアウトをサポートしています。
フェデレーションログアウトを使用してユーザーをアプリケーションからリダイレクトするには、以下のエンドポイントでフェデレーションログアウトを開始します。
https://{yourDomain}/v2/logout?federated
リダイレクト前に、アプリケーションがユーザーセッションを終了する必要がありますが、これはお客様の責任となります。
ユーザーが/logout
エンドポイントに到達すると、Auth0は、Auth0セッションを終了し、ユーザーをIDプロバイダーのログアウトエンドポイントにリダイレクトして、IDプロバイダーとのセッションを終了します。
制限事項
returnTo
パラメーターの値として提供されたURL、クエリ文字列、URLの一部として提供されたハッシュ情報の検証は、考慮されません。ソーシャルプロバイダーのフェデレーションログアウトの動作は、一致しません。プロバイダーによって
returnTo
パラメーターの扱いは異なり、動作しないプロバイダーもあります。ソーシャルプロバイダーの設定で、returnTo
パラメーターを受け入れていること、またその動作について確認してください。[Allowed Logout URLs(許可されているログアウトURL)]リストに提供されたURLは、大文字と小文字を区別するため、ログアウトに使用されたURLは、Dashboardで設定されたログアウトURLケースと大文字・小文字が一致している必要があります。しかし、スキームおよびホスト部分は大文字と小文字を区別しないのでご注意ください。たとえば、URLが
http://www.Example.Com/FooHoo.html
であれば、http://www.Example.Com
の部分では大文字と小文字の区別がされず、FooHoo.html
の部分では区別されます。
GoogleやFacebookなどのソーシャルIDプロバイダーを使用している場合は、ログアウトが適切に機能するように、DashboardでこれらプロバイダーのClient ID
およびSecret
を設定する必要があります。
Facebookの追加要件
ログアウト後にユーザーにリダイレクトする方法を指定するために、returnTo
パラメーターを使用します。
すべてのIdPsがreturnTo
をサポートしているとは限りません。
Facebookについては、以下の例にあるコードでは、returnTo
を使用して、リダイレクトのWebサイトを指定しています。
https://{yourDomain}/v2/logout?federated&
returnTo=https://{yourDomain}/logout?returnTo=http://www.example.com
&access_token={facebookAccessToken}
Was this helpful?