
# クイックスタート

各クイックスタートでは、空のプロジェクトから、有効な KeenAuth のアクセストークンのみを受け付ける API、またはユーザーをサインインさせるウェブアプリまで、フレームワークごとに構築します。各クイックスタートは、SDK のテストキットを使ってオフラインで実行できるサンプルから作成されているため、これらのページのコードは、テストで検証されているコードそのものです。

## API を保護する

| フレームワーク | クイックスタート |
|---|---|
| Go `net/http` | [Go API を保護する](/docs/quickstarts/go) |
| Node.js Express | [Express API を保護する](/docs/quickstarts/express) |
| Python FastAPI | [FastAPI API を保護する](/docs/quickstarts/fastapi) |
| Python Django | [Django API を保護する](/docs/quickstarts/django) |

4 つの API クイックスタートはすべて、同じ API を構築します。公開エンドポイント、有効なアクセストークンを必要とするエンドポイント、さらに `messages:read` スコープも必要とするエンドポイントです。構成は環境変数からのみ読み取ります。

| 変数 | 意味 |
|---|---|
| `KEENAUTH_ISSUER` | 環境の発行者です。例：`https://your-environment.eu.keenauth.app` |
| `KEENAUTH_AUDIENCE` | お使いの API の識別子で、そのアクセストークンのオーディエンスです |
| `PUBLIC_BASE_URL` | クライアントが呼び出す URL です。必須で、`https` を使用します（`localhost` の場合のみ `http` を使用できます） |

## ユーザーのサインイン

| フレームワーク | クイックスタート |
|---|---|
| Next.js（App Router） | [Next.js アプリにサインインを追加する](/docs/quickstarts/nextjs) |
| React シングルページアプリ（Vite） | [React シングルページアプリにサインインを追加する](/docs/quickstarts/react) |
| React Router（フレームワークモード） | [React Router アプリにサインインを追加する](/docs/quickstarts/react-router) |
| Laravel | [Laravel アプリにサインインを追加する](/docs/quickstarts/laravel) |
| Spring Boot | [Spring Boot アプリにサインインを追加する](/docs/quickstarts/spring-boot) |
| ASP.NET Core | [ASP.NET Core アプリにサインインを追加する](/docs/quickstarts/dotnet) |

Next.js アプリは OAuth クライアントであり、すべてのトークンをサーバー側で保持します。React Router アプリも同様で、標準の OpenID Connect クライアントである `openid-client` を使用します。React シングルページアプリはパブリッククライアントです。そのトークンはブラウザのメモリに保持され、DPoP 鍵に紐付けられます。その他のウェブアプリは、各フレームワークの標準的な OpenID Connect クライアントライブラリを使用し、すべてのトークンをサーバー側のセッションに保持します。いずれも構成は環境変数から読み取り（各ページを参照してください）、ユーザーのアクセストークンを使って保護された API を呼び出します。

Fastify と Flask も同じミドルウェアを使用します。[ミドルウェアで API を保護する](/docs/sdk/protect-api) を参照してください。
