Skip to main content
**前提条件:**開始する前に、以下がインストールされていることを確認してください。
  • Node.js 20 LTS 以降
  • npm 10 以降、または yarn 1.22 以降、または pnpm 8 以降
インストールの確認:node --version && npm --version
@auth0/auth0-tanstack-start-react は現在 ベータ版 (1.0.0-beta.0) です。安定版 1.0 のリリースまでに API が変更される可能性があります。

はじめに

このクイックスタートでは、TanStack Start Reactアプリケーションに Auth0 authentication を追加する方法を説明します。Auth0 TanStack Start React SDKを使用して、Login、logout、保護されたroute、ユーザープロファイル情報を備えたサーバーレンダリング型のアプリを構築します。
1

新しいプロジェクトを作成する

この Quickstart 用に、新しい TanStack Start プロジェクトを作成します。
お使いのマシンで @tanstack/cli を初めて実行する場合、npm からインストールの確認を求められます。y と入力して続行してください。
プロジェクトを開きます:
2

Auth0 TanStack Start SDK をインストールする

3

Tailwind CSS を追加

Tailwind CSS と Vite プラグインをインストールします。
vite.config.ts を更新して Tailwind の Plugin を追加し、開発サーバーを port 3000 に固定します。
vite.config.ts
strictPort: true を指定すると、Vite はポートを勝手に切り替えるのではなく、その場でエラーとして停止します。Auth0 アプリケーションのコールバック URL はポート 3000 に固定されているため、ポートが黙って変更されると、何もリッスンしていないポートにブラウザがリダイレクトされ、ログイン画面で承認した後に空白のページから先に進めなくなってしまいます。
src/styles.css の内容を次の内容に置き換えます。
src/styles.css
4

プロジェクトファイルを作成

Auth0連携に必要な追加ファイルを作成します。
5

Auth0 App を設定する

次に、Auth0 テナントで新しいアプリを作成し、環境変数をプロジェクトに追加します。Auth0アプリをセットアップする方法は3つあります。Quick Setupツールを使用する (推奨) 、CLIコマンドを実行する、またはAuth0 Dashboardから手動で構成する、のいずれかです。
Auth0 アプリを作成し、適切な設定値が事前入力された .env ファイルをコピーします。
6

Auth0サーバーのインスタンスを作成する

src/auth.server.ts に Auth0 server インスタンスを追加します。Auth0 server インスタンスは、先ほど設定した environment variables から構成を読み込みます。
src/auth.server.ts
7

Auth0 middleware を登録する

Auth0 の request middleware を登録するために、src/start.ts に以下を追加します。
src/start.ts
start.ts はクライアントバンドルにもコンパイルされるため、auth0Middleware/server バレルではなく /server/middleware サブパスからインポートしてください。
このミドルウェアは、以下の認証ルートを自動的にマウントします。
  • /auth/login - Login ルート
  • /auth/callback - コールバックルート
  • /auth/logout - Logout ルート
  • /auth/profile - ユーザープロファイルルート
  • /auth/backchannel-logout - バックチャネル logout ルート
8

Auth0をrouterに組み込む

src/router.tsx を更新し、Router のコンテキストが Auth0 で解決された認証 state を保持するようにします。TanStack Start では、このファイルで getRouter という名前の関数を export する必要があります。
src/router.tsx
9

ルートルートを更新する

src/routes/__root.tsx を更新して、レンダリング前に認証 state を解決し、アプリを Auth0Provider でラップします。
src/routes/__root.tsx
これにより createRootRoutecreateRootRouteWithContext<RouterContext>() に置き換わり、ルートツリーの型に context.auth0 を含められるようになります。
10

Login、Logout、プロファイルコンポーネントを作成する

ステップ 4 で作成したファイルに、コンポーネントのコードを追加します:次に、src/routes/index.tsx のプレースホルダーの内容 (スキャフォールドで生成された Welcome to TanStack Start ページ) を、以下の内容に置き換えます。
src/routes/index.tsx
useLoginuseLogout は、client-side の Router による遷移ではなく、ブラウザー全体のナビゲーションを行います。これは /auth/* がサーバー側の middleware で処理され、session cookie を有効にするにはページの再読み込みが必要なためです。
11

ルートを保護する

requireAuth ガードを使用して、保護された /dashboard route を src/routes/dashboard.tsx に追加します。この route は、HTML がブラウザーに送信される前にサーバー側で未認証のユーザーを /auth/login にリダイレクトします。
src/routes/dashboard.tsx
12

アプリを実行する

アプリは http://localhost:3000 でアクセスできます。
チェックポイントここまでで、localhost 上で Auth0 Loginページが問題なく動作しているはずです