> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> レガシーなログアウトエンドポイントを使用してユーザーをリダイレクトする方法を説明します。

# 代替ログアウトを使用してユーザーをリダイレクトする

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****マスク済み*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

ログアウト後に、ユーザーを特定の URL にリダイレクトできます。リダイレクト URL は、テナントまたはアプリケーションの設定に登録する必要があります。Auth0 は、ログアウト後、許可リストに登録された URL にのみリダイレクトします。アプリケーションごとに異なるリダイレクト先が必要な場合は、アプリケーション設定の許可リストに URL を追加できます。

1. リダイレクト先の URL を値とする `returnTo` クエリ文字列パラメーターを追加します。渡す URL はエンコードしてください。たとえば、ログアウト後にユーザーを `https://www.example.com` にリダイレクトするには、次のリクエストを送信します。
   `https://{yourDomain}/v2/logout?returnTo=https%3A%2F%2Fwww.example.com`.
2. エンコードしていない `returnTo` URL (たとえば `https://www.example.com`) を、次の 2 か所のいずれかにある **Allowed Logout URLs** に追加します。

   * **Tenant Settings**: `client_id` パラメーターを含まないログアウトリクエストでは、`returnTo` URL を [Tenant Settings の Advanced タブ](https://manage.auth0.com/#/tenant/advanced) の **Allowed Logout URLs** リストに追加する必要があります。

     テナントレベルで、ログアウト後にユーザーをリダイレクトできる URL の一覧を追加するには、Auth0 Dashboard の [Tenant Settings > Advanced](https://manage.auth0.com/#/tenant/advanced) に移動します。

     <Frame>
       <img src="https://mintcdn.com/translations/c0RQ9V0YAcT0-8l5/docs/images/cdy7uua7fh8z/77s6AWMuzH78ABObR3lg0o/e71244706641f43e292d719056f3e651/2025-02-27_11-14-31.png?fit=max&auto=format&n=c0RQ9V0YAcT0-8l5&q=85&s=eeb1857670b7182e3e760174f8558bf5" alt="Auth0 Dashboard Settings Advanced Tab Login and Logout" width="1404" height="882" data-path="docs/images/cdy7uua7fh8z/77s6AWMuzH78ABObR3lg0o/e71244706641f43e292d719056f3e651/2025-02-27_11-14-31.png" />
     </Frame>
   * **Auth0 Application Settings**: `client_id` パラメーターを含むログアウトリクエストでは、関連する Auth0 アプリケーションの **Settings** タブにある **Allowed Logout URLs** リストに `returnTo` URL を追加する必要があります。

     <Frame>
       <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1QhW2i4fTCCp8owey2tMPI/a19f7fc3f84118920d0e5cb2357144da/Application_URIs.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=90f4824b5e8a3853b4efb1ec3c7e05c0" alt="Dashboard Applications Application Settings Application URIs" width="1202" height="1218" data-path="docs/images/cdy7uua7fh8z/1QhW2i4fTCCp8owey2tMPI/a19f7fc3f84118920d0e5cb2357144da/Application_URIs.png" />
     </Frame>

URL の一覧を指定する際は、次のことができます。

1. 有効な URL をカンマ区切りで複数指定する。
2. [サブドメインのワイルドカード](/ja/docs/get-started/applications/wildcards-for-subdomains) として `*` を使用する (例: `http://*.example.com`) 。

`client_id` パラメーターが含まれていて、`returnTo` URL が設定されていない場合、サーバーはユーザーを Dashboard で最初に設定された Allowed Logout URLs にリダイレクトします。

検証エラーを避けるため、URL には必ずプロトコル部分を含めてください。たとえば、値を `*.example.com` に設定すると検証エラーになるため、代わりに `http://*.example.com` を使用してください。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 の `oidc/logout` エンドポイントを使用してリダイレクトする方法については、[Use OIDC Endpoint to Log Users Out of Auth0](/ja/docs/authenticate/login/logout/log-users-out-of-auth0) を参照してください。
</Callout>

<div id="federated-logouts">
  ## フェデレーションログアウト
</div>

[複数のプロバイダー](/ja/docs/authenticate/login/logout/log-users-out-of-idps#federated-logout-support)が、フェデレーションログアウトをサポートしています。

フェデレーションログアウトを使用するアプリケーションからユーザーをリダイレクトするには、次のエンドポイントでフェデレーションログアウトを開始します。

`https://{yourDomain}/v2/logout?federated`

リダイレクトする前に、アプリケーションでユーザーセッションが確実に終了するようにしてください。

ユーザーが`/logout`エンドポイントに到達すると、Auth0 は Auth0 セッションを終了し、ユーザーを<Tooltip tip="IDプロバイダー（IdP）: デジタルIDを保存および管理するサービス。" cta="用語集を見る" href="/ja/docs/glossary?term=Identity+Providers">IDプロバイダー</Tooltip>のログアウトエンドポイントにリダイレクトして、IDプロバイダーとのセッションを終了します。

<div id="limitations">
  ## 制限事項
</div>

* `returnTo` パラメーターの値として指定された URL の検証や、URL に含まれるクエリ文字列およびハッシュ情報は考慮されません。
* ソーシャルプロバイダーとのフェデレーションログアウトの動作には一貫性がありません。各プロバイダーで `returnTo` パラメーターの扱いが異なり、プロバイダーによっては機能しない場合があります。`returnTo` パラメーターを受け入れるかどうか、またどのように動作するかを確認するため、ソーシャルプロバイダーの設定を確認してください。
* **Allowed Logout URLs** リストに指定する URL では大文字と小文字が区別されるため、ログアウトに使用する URL は Dashboard で設定したログアウト URL と大文字小文字まで一致している必要があります。ただし、スキームとホストの部分は大文字と小文字を区別しません。たとえば、URL が `http://www.Example.Com/FooHoo.html` の場合、`http://www.Example.Com` の部分は大文字と小文字を区別しませんが、`FooHoo.html` の部分は区別されます。

Google や Facebook などのソーシャル IDプロバイダーを使用している場合、ログアウトを正しく機能させるには、これらのプロバイダーの `Client ID` と `Secret` を [Dashboard](https://manage.auth0.com/#) で設定する必要があります。

<div id="additional-requirements-for-facebook">
  ## Facebook の追加要件
</div>

ログアウト後のユーザーのリダイレクト先を指定するには、`returnTo` パラメーターを使用します。

`returnTo` をサポートしていない IdP もあります。

Facebook では、以下のコード例で `returnTo` パラメーターを使用し、リダイレクト先として Web サイトを指定しています。

export const codeExample = `https://{yourDomain}/v2/logout?federated&
      returnTo=https://{yourDomain}/logout?returnTo=http://www.example.com
      &access_token={facebookAccessToken}`;

<AuthCodeBlock children={codeExample} language="http" />

<div id="learn-more">
  ## 詳細情報
</div>

* [アプリケーションからユーザーをログアウトする](/ja/docs/authenticate/login/logout/log-users-out-of-applications)
* [OIDC エンドポイントを使用して Auth0 からユーザーをログアウトする](/ja/docs/authenticate/login/logout/log-users-out-of-auth0)
* [IDプロバイダーからユーザーをログアウトする](/ja/docs/authenticate/login/logout/log-users-out-of-idps)
* [SAML IDプロバイダーからユーザーをログアウトする](/ja/docs/authenticate/login/logout/log-users-out-of-saml-idps)
