> ## 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.

# Laravel アプリケーションにログイン機能を追加する

> このガイドでは、Auth0 Laravel SDK を使用して、新規または既存の Laravel アプリケーションに Auth0 を統合する方法を説明します。

export const QuickstartButtons = ({githubLink}) => {
  const text = {
    viewOnGithub: "GitHubで見る",
    loginAndDownload: "サンプルをダウンロード"
  };
  const parseGithubUrl = url => {
    try {
      const urlObj = new URL(url);
      const pathParts = urlObj.pathname.split("/").filter(Boolean);
      if (pathParts.length >= 4 && pathParts[2] === "tree") {
        const repoName = pathParts[1];
        const branch = pathParts[3];
        const path = pathParts.slice(4).join("/") || undefined;
        return {
          repo: repoName,
          branch,
          path
        };
      }
      console.warn("GitHub URLを解析できませんでした:", url);
      return null;
    } catch (error) {
      console.error("GitHub URLの解析中にエラーが発生しました:", error);
      return null;
    }
  };
  const handleDownload = async () => {
    const params = parseGithubUrl(githubLink);
    if (!params) {
      console.error("GitHub URLの形式が無効です");
      return;
    }
    try {
      await window.Auth0DocsUI?.getSample(params);
    } catch (error) {
      console.error("サンプルのダウンロードに失敗しました:", error);
    }
  };
  return <div className="quickstart_buttons flex flex-wrap gap-3 mb-4">
      <a href={githubLink} target="_blank" rel="noopener noreferrer" className="no_external_icon quickstart_button inline-flex items-center justify-center px-6 py-3 text-sm font-medium rounded-[18px] bg-black dark:bg-white !text-white dark:!text-black hover:bg-gray-800 dark:hover:bg-gray-100 transition-colors">
        {text.viewOnGithub}
      </a>
      <button onClick={handleDownload} type="button" className="no_external_icon quickstart_button inline-flex items-center justify-center px-6 py-3 text-sm font-medium rounded-[18px] border border-gray-300 dark:border-[#454545] bg-white dark:bg-[#272728] !text-black dark:!text-white hover:bg-gray-50 dark:hover:bg-neutral-800 transition-colors">
        {text.loginAndDownload}
      </button>
    </div>;
};

export const CreateInteractiveApp = ({placeholderText = "Auth0", appType = "regular_web", allowedCallbackUrls = ["localhost:3000"], allowedLogoutUrls = ["localhost:3000"], allowedOriginUrls = ["localhost:3000"]}) => {
  const [isAuthenticated, setIsAuthenticated] = useState(false);
  const [storeReady, setStoreReady] = useState(false);
  const [displayForm, setDisplayForm] = useState(true);
  useEffect(() => {
    const init = () => setStoreReady(true);
    if (window.rootStore) {
      window.rootStore.clientStore.setSelectedClient(null);
      window.rootStore.clientStore.setSelectedClientSecret(undefined);
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
    };
  }, []);
  useEffect(() => {
    if (!storeReady) return;
    const disposer = autorun(() => {
      const rootStore = window.rootStore;
      setIsAuthenticated(rootStore.sessionStore.isAuthenticated);
    });
    return () => {
      disposer();
    };
  }, [storeReady]);
  if (!storeReady || typeof window === "undefined" || !displayForm) {
    return <></>;
  }
  const login = () => {
    const baseUrl = window.rootStore.config.apiBaseUrl;
    const returnTo = encodeURIComponent(window.location.href);
    window.location.href = `${baseUrl}/auth/user/login?returnTo=${returnTo}`;
  };
  const Card = ({className = "", children}) => {
    return <div className={`
          flex border rounded-2xl
          border-gray-950/10 dark:border-white/10
          py-3.5 px-4 gap-2
          text-sm text-gray-900 dark:text-gray-200
          ${className}
        `}>
        {children}
      </div>;
  };
  const Button = ({children, ...props}) => {
    return <button className="bg-[--button-primary] text-[--foreground-inverse] px-[1.125rem] py-1.5 rounded-lg font-medium" {...props}>
        {children}
      </button>;
  };
  const CreateApplicationForm = () => {
    const [name, setName] = useState("");
    const [isLoading, setIsLoading] = useState(false);
    const [error, setError] = useState("");
    const handleSubmit = async () => {
      if (!name.trim()) {
        setError("アプリケーション名は必須です");
        return;
      }
      setIsLoading(true);
      setError(null);
      try {
        await window.rootStore.clientStore.createClient({
          name: name.trim(),
          app_type: appType,
          callbacks: allowedCallbackUrls,
          allowed_logout_urls: allowedLogoutUrls,
          web_origins: allowedOriginUrls,
          client_metadata: {
            created_by: "quickstart-docs-app-creation-component"
          }
        });
        setDisplayForm(false);
      } catch (err) {
        console.error("クライアントの作成中にエラーが発生しました:", err);
        const errorMessage = err instanceof Error ? err.message : "アプリケーションの作成に失敗しました";
        setError(errorMessage);
      } finally {
        setIsLoading(false);
      }
    };
    return <Card className="flex-col items-start p-4 gap-3.75">
        <span className="font-medium text-gray-900 dark:text-gray-200">Auth0 アプリの作成</span>
        <div className="w-full flex gap-2">
          <input id="app-name" name={name} className="
              w-full max-w-[448px] h-11 py-2 px-4 
              border rounded-lg border-gray-950/10 dark:border-white/10 
              text-gray-900 dark:text-gray-200
              focus:outline-none dark:focus:outline-none
            " placeholder={`My ${placeholderText} App`} value={name} onChange={e => setName(e.target.value)} />
          <Button onClick={handleSubmit}>{isLoading ? "作成中..." : "作成"}</Button>
        </div>
        {error && <p className="text-red-500">{error}</p>}
      </Card>;
  };
  const SignInForm = () => {
    return <Card className="items-center">
        <Button onClick={login}>ログイン</Button> <span>してアプリを作成してください</span>
      </Card>;
  };
  return isAuthenticated ? <CreateApplicationForm /> : <SignInForm />;
};

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>;
};

<QuickstartButtons githubLink="https://github.com/auth0-samples/laravel/tree/7.x/sample" />

export const envSnippet = `AUTH0_DOMAIN={yourDomain}
AUTH0_CLIENT_ID={yourClientId}
AUTH0_CLIENT_SECRET={yourClientSecret}`;

<Accordion title="AI を使って Auth0 を統合する" icon="microchip-ai" iconType="solid" defaultOpen>
  Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、[agent skills](https://agentskills.io/home) を使って、数分で Auth0 認証を自動的に追加できます。

  **インストール:**

  ```bash theme={null}
  npx skills add auth0/agent-skills --skill auth0-quickstart --skill auth0-laravel
  ```

  **次に、AI アシスタントに以下のように依頼します。**

  ```text theme={null}
  Add Auth0 authentication to my Laravel app
  ```

  AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、`auth0/login` のインストール、環境変数の設定、認証ルートの登録を自動的に行います。[agent skills の完全なドキュメント →](/ja/docs/quickstart/agent-skills)
</Accordion>

<Note>
  **前提条件:** 開始する前に、以下がインストールされていることを確認してください。

  * **[PHP](https://www.php.net/downloads.php)** 8.2 以降
  * **[Composer](https://getcomposer.org/download/)** 2.x
  * **[Laravel](https://laravel.com/docs/installation)** 11、12、または 13

  インストールを確認するには、次を実行します: `php --version && composer --version`
</Note>

<div id="get-started">
  ## はじめに
</div>

このクイックスタートでは、Laravel アプリケーションに Auth0 の認証を追加する方法を説明します。[Auth0 Laravel SDK](https://github.com/auth0/laravel-auth0) を使用して、安全なログイン、ログアウト、保護されたルート、ユーザープロファイルへのアクセスを設定します。

<Steps>
  <Step title="新しいLaravelプロジェクトを作成" stepNumber={1}>
    すでに Laravel アプリケーションがある場合は、ステップ 2 に進みます。

    新しい Laravel プロジェクトを作成します。

    ```bash theme={null}
    composer create-project laravel/laravel auth0-laravel-app
    ```

    プロジェクトディレクトリを開きます:

    ```bash theme={null}
    cd auth0-laravel-app
    ```
  </Step>

  <Step title="Auth0 Laravel SDKをインストールする" stepNumber={2}>
    プロジェクトディレクトリで次のコマンドを実行して、[Auth0 Laravel SDK](https://github.com/auth0/laravel-auth0)をインストールします。

    ```bash theme={null}
    composer require auth0/login:^7 --update-with-all-dependencies
    ```

    次に、SDK の設定ファイルを公開します。

    ```bash theme={null}
    php artisan vendor:publish --tag auth0
    ```
  </Step>

  <Step title="Auth0の認証情報を設定する" stepNumber={3}>
    Auth0 アプリケーションを作成し、認証情報をプロジェクトに追加する必要があります。次のいずれかの方法を選択してください。

    <Tabs>
      <Tab title="クイックセットアップ（推奨）">
        Auth0 アプリを作成し、適切な設定値があらかじめ入力された `.env` 用の認証情報をコピーします。

        <CreateInteractiveApp placeholderText="Laravel" appType="regular_web" allowedCallbackUrls={["http://localhost:8000/callback"]} allowedLogoutUrls={["http://localhost:8000"]} />

        これらの値をプロジェクトの `.env` ファイルに追加します。

        <AuthCodeBlock children={envSnippet} language="shellscript" filename=".env" />
      </Tab>

      <Tab title="CLI">
        [Auth0 CLI](https://github.com/auth0/auth0-cli#installation) をインストールし、アカウントにログインします。

        <CodeGroup>
          ```bash Mac theme={null}
          brew tap auth0/auth0-cli && brew install auth0
          auth0 login
          ```

          ```powershell Windows theme={null}
          scoop bucket add auth0 https://github.com/auth0/scoop-auth0-cli.git
          scoop install auth0
          auth0 login
          ```
        </CodeGroup>

        Auth0 アプリケーションと API を作成し、SDK が自動的に読み込む JSON ファイルに認証情報を保存します。

        ```bash theme={null}
        auth0 apps create \
          --name "My Laravel Application" \
          --type "regular" \
          --auth-method "post" \
          --callbacks "http://localhost:8000/callback" \
          --logout-urls "http://localhost:8000" \
          --reveal-secrets \
          --no-input \
          --json > .auth0.app.json

        auth0 apis create \
          --name "My Laravel Application's API" \
          --identifier "https://github.com/auth0/laravel-auth0" \
          --offline-access \
          --no-input \
          --json > .auth0.api.json
        ```

        <Note>
          これらのファイルには認証情報が含まれます。バージョン管理に含めないよう、`.gitignore` に追加してください。

          ```bash theme={null}
          echo ".auth0.*.json" >> .gitignore
          ```
        </Note>
      </Tab>

      <Tab title="Dashboard">
        1. [Auth0 Dashboard](https://manage.auth0.com/) → **Applications > Applications** に移動します
        2. **Create Application** をクリックし、名前を入力して **Regular Web Application** を選択し、**Create** をクリックします
        3. **Settings** タブに移動し、**Domain**、**Client ID**、**Client Secret** をコピーします

        アプリケーションの **Settings** タブで、次の URL を設定します。

        | Field                 | Value                            |
        | --------------------- | -------------------------------- |
        | Allowed Callback URLs | `http://localhost:8000/callback` |
        | Allowed Logout URLs   | `http://localhost:8000`          |

        **Save Changes** をクリックします。

        次に、認証情報をプロジェクトの `.env` ファイルに追加します。

        ```bash .env theme={null}
        AUTH0_DOMAIN=YOUR_AUTH0_DOMAIN
        AUTH0_CLIENT_ID=YOUR_AUTH0_CLIENT_ID
        AUTH0_CLIENT_SECRET=YOUR_AUTH0_CLIENT_SECRET
        ```

        <Warning>
          `AUTH0_CLIENT_SECRET` は絶対にバージョン管理にコミットしないでください。`.env` に保存し、`.env` が `.gitignore` に含まれていることを確認してください。
        </Warning>
      </Tab>
    </Tabs>
  </Step>

  <Step title="認証用ルートを追加する" stepNumber={4}>
    Auth0 SDK は、アプリケーションに対して次のルートを自動的に登録します。追加のルート設定は不要です。

    | Route       | Purpose                      |
    | ----------- | ---------------------------- |
    | `/login`    | Auth0 のログインフローを開始します         |
    | `/logout`   | ユーザーをログアウトし、Auth0 にリダイレクトします |
    | `/callback` | Auth0 の認証コールバックを処理します        |

    <Note>
      アプリケーションで Laravel Breeze、Fortify、または Jetstream を使用している場合、SDK の `/login`、`/logout`、`/callback` ルートが、それらのパッケージによって登録されたルートと競合する可能性があります。ルートを手動で登録する手順については、[SDK README](https://github.com/auth0/laravel-auth0) を参照してください。
    </Note>

    `routes/web.php` を更新して、ホームルートを追加します。

    ```php routes/web.php lines theme={null}
    <?php

    use Illuminate\Support\Facades\Route;

    Route::get('/', function () {
        if (! auth()->check()) {
            return response('You are not logged in. <a href="/login">Log in</a>');
        }

        $user = auth()->user();
        $name = $user->name ?? 'User';
        $email = $user->email ?? '';

        return response("Hello {$name}! Your email address is {$email}.");
    });
    ```
  </Step>

  <Step title="ミドルウェアを使用してルートを保護する" stepNumber={5}>
    Laravel の `auth` ミドルウェアを使用すると、任意のルートで認証を必須にできます。`can` ミドルウェアを使用して、特定の[権限](https://auth0.com/docs/manage-users/access-control/rbac)を必須にすることもできます。

    ```php routes/web.php lines theme={null}
    <?php

    use Illuminate\Support\Facades\Route;

    // 認証済みユーザーであれば誰でもアクセス可能
    Route::get('/private', function () {
        return response('Welcome! You are logged in.');
    })->middleware('auth');

    // 認証済みであり、かつ 'read:messages' 権限が必要
    Route::get('/scope', function () {
        return response('You have the read:messages permission.');
    })->middleware('auth')->can('read:messages');
    ```

    <Info>
      権限は Auth0 API の設定で定義され、ロールを通じてユーザーに割り当てられます。詳しくは、[ロールベースのアクセス制御](https://auth0.com/docs/manage-users/access-control/rbac)を参照してください。
    </Info>
  </Step>

  <Step title="アプリケーションを実行する" stepNumber={6}>
    ```bash theme={null}
    php artisan serve
    ```

    <Info>
      アプリケーションは [http://localhost:8000](http://localhost:8000) で実行されます。ポート 8000 がすでに使用されている場合は、`php artisan serve --port=8001` を実行し、新しいポートを使用するように Auth0 アプリケーションの **Allowed Callback URLs** と **Allowed Logout URLs** を更新してください。
    </Info>
  </Step>
</Steps>

<Check>
  **チェックポイント**

  ブラウザーで [http://localhost:8000](http://localhost:8000) を開きます。次のルートにアクセスして、統合が正しく機能していることを確認してください。

  * [http://localhost:8000/login](http://localhost:8000/login) — Auth0 のログインフローを開始します
  * [http://localhost:8000/private](http://localhost:8000/private) — 未認証の場合はログイン画面にリダイレクトされ、ログイン済みの場合はウェルカムメッセージが表示されます
  * [http://localhost:8000/logout](http://localhost:8000/logout) — ログアウトし、ホームページに戻ります
</Check>

***

<div id="troubleshooting">
  ## トラブルシューティング
</div>

<AccordionGroup>
  <Accordion title="コールバック URL の不一致エラー">
    **原因:** Auth0 に送信されたコールバック URL が、アプリケーションの **Allowed Callback URLs** リスト内のどの URL とも一致していません。

    **対処方法:**

    1. [Auth0 Dashboard](https://manage.auth0.com/) で **Applications > Applications** → 対象のアプリ → **Settings** に移動します
    2. **Allowed Callback URLs** に `http://localhost:8000/callback` を追加します
    3. **Save Changes** をクリックします

    末尾にスラッシュが付いていないこと、およびポート番号が実行中のサーバーと一致していることを確認してください。
  </Accordion>

  <Accordion title="ログイン後に state / CSRF エラーが発生する">
    **原因:** セッションまたは Cookie の設定に問題があります。Laravel セッションで、ログイン リダイレクトからコールバックまでの間の state が保持されていません。

    **対処方法:**

    1. `.env` の `SESSION_DRIVER` が `file`、`database`、または `redis` に設定されていることを確認します (`array` は使用しないでください)
    2. 設定とキャッシュをクリアします:

    ```bash theme={null}
    php artisan config:clear && php artisan cache:clear
    ```

    3. 開発サーバーを再起動します
  </Accordion>

  <Accordion title="AUTH0_DOMAIN が設定されていない、または認証情報が読み込まれない">
    **原因:** SDK が Auth0 の認証情報を見つけられません。

    **対処方法:** プロジェクトのルート ディレクトリに、次のいずれかが存在することを確認してください。

    * `AUTH0_DOMAIN`、`AUTH0_CLIENT_ID`、`AUTH0_CLIENT_SECRET` を含む `.env` ファイル
    * Auth0 CLI が生成した `.auth0.app.json` ファイル

    `.env` を更新したら、設定キャッシュをクリアします:

    ```bash theme={null}
    php artisan config:clear
    ```
  </Accordion>

  <Accordion title="/login、/logout、または /callback で 404 が発生する">
    **原因:** SDK のルートが登録されていません。通常は、サービスプロバイダーが読み込まれていないことが原因です。

    **対処方法:**

    1. `php artisan vendor:publish --tag auth0` を実行済みであることを確認します
    2. パッケージの自動検出が有効になっていることを確認します (`composer.json` の `"dont-discover": []` を確認してください)
    3. `php artisan route:list | grep auth0` を実行して、ルートが登録されていることを確認します
    4. ルートが見つからない場合は、サービスプロバイダーを手動で登録します。Laravel 11 以降では、`bootstrap/providers.php` に追加します:

    ```php bootstrap/providers.php theme={null}
    return [
        App\Providers\AppServiceProvider::class,
        Auth0\Laravel\Auth0ServiceProvider::class,
    ];
    ```
  </Accordion>
</AccordionGroup>

***

<div id="advanced-usage">
  ## 高度な使い方
</div>

<AccordionGroup>
  <Accordion title="Management API — ユーザーメタデータの更新">
    [Auth0 Management API](https://github.com/auth0/laravel-auth0/blob/main/docs/Management.md) を使用してユーザー情報を更新できます。すべての Management API エンドポイントには、SDK の `Auth0::management()` メソッドからアクセスできます。

    **Management API を呼び出す前に**、アプリケーションに Management API へのアクセス権を付与してください。

    1. [Auth0 Dashboard](https://manage.auth0.com/) → **Applications > APIs** → **Auth0 Management API** に移動します
    2. **Machine to Machine Applications** タブを選択します
    3. Laravel アプリケーションを認可し、`read:users` と `update:users` スコープを付与します

    ```php routes/web.php lines theme={null}
    <?php

    use Auth0\Laravel\Facade\Auth0;
    use Illuminate\Support\Facades\Route;

    Route::get('/colors', function () {
        $colors = ['red', 'blue', 'green', 'black', 'white', 'yellow', 'purple', 'orange'];

        $users = Auth0::management()->users();

        // 認証済みユーザーのメタデータをランダムなお気に入りの色で更新する
        $users->update(
            id: auth()->id(),
            body: [
                'user_metadata' => [
                    'color' => $colors[random_int(0, count($colors) - 1)],
                ],
            ]
        );

        // 更新後のメタデータを取得して表示する
        $metadata = Auth0::json($users->get(auth()->id()));
        $color = $metadata['user_metadata']['color'] ?? 'unknown';
        $name = auth()->user()->name;

        return response("Hello {$name}! Your favorite color is {$color}.");
    })->middleware('auth');
    ```

    すべての Management API メソッドの完全なリファレンスは、[SDK ドキュメント](https://github.com/auth0/laravel-auth0/blob/main/docs/Management.md)で確認できます。
  </Accordion>

  <Accordion title="カスタムユーザーモデルとリポジトリ">
    SDK はカスタムユーザーモデルとリポジトリをサポートしており、Auth0 を IDプロバイダーとして維持しながら、独自のデータベースでユーザーを保存および取得できます。

    実装ガイド全体については、[User Repositories and Models](https://github.com/auth0/laravel-auth0/blob/main/docs/Users.md) を参照してください。
  </Accordion>

  <Accordion title="SDK イベントのリッスン">
    SDK は認証ライフサイクルの要所でイベントを発生させます。ログイン、ログアウト、トークン更新時などのイベントを利用して、SDK のコアコードを変更することなく動作を柔軟にカスタマイズできます。

    イベントの一覧と実装例については、[Hooking Events](https://github.com/auth0/laravel-auth0/blob/main/docs/Events.md) を参照してください。
  </Accordion>

  <Accordion title="ロールベースのアクセス制御 (RBAC)">
    Auth0 RBAC を使用してロール経由でユーザーに権限を割り当て、`can` ミドルウェアを使って Laravel でそれを適用します。

    ```php routes/web.php theme={null}
    <?php

    use Illuminate\Support\Facades\Route;

    Route::get('/admin', function () {
        return response('Admin area.');
    })->middleware('auth')->can('admin:dashboard');
    ```

    RBAC を設定するには、次の手順を実行します。

    1. [Auth0 Dashboard](https://manage.auth0.com/) → **Applications > APIs** → 対象の API → **Permissions** に移動します
    2. アプリケーションに必要な権限 (例: `admin:dashboard`、`read:messages`) を追加します
    3. **User Management > Roles** に移動し、ロールを作成して権限を割り当てます
    4. ユーザープロフィールページからロールを割り当てます

    詳細なガイドについては、[Role-Based Access Control](https://auth0.com/docs/manage-users/access-control/rbac) を参照してください。
  </Accordion>
</AccordionGroup>

***

<div id="next-steps">
  ## 次のステップ
</div>

Laravel アプリケーションで認証が動作するようになったので、Auth0 のその他の機能も確認してみましょう。

* [Auth0 Dashboard](https://manage.auth0.com/) — Auth0 テナントとアプリケーションを設定、管理します
* [laravel-auth0 SDK](https://github.com/auth0/laravel-auth0) — SDK の完全なドキュメントと高度な統合
* [ロールベースのアクセス制御](https://auth0.com/docs/manage-users/access-control/rbac) — ロールを使用してユーザーに権限を割り当てます
* [Auth0 Marketplace](https://marketplace.auth0.com/) — Auth0 の機能を拡張するための統合を見つける
