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

# Clerk の統合

> Lovable アプリに Clerk を統合する方法を解説します

<div id="why-clerk">
  ## なぜ Clerk なのか？
</div>

<img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/what-is-clerk.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=fbdaff4ce1fd8ffdc791bc1a9306a37f" alt="What Is Clerk Pn" width="2648" height="1272" data-path="images/what-is-clerk.png" />

[Clerk](https://clerk.com) は、認証とユーザー管理を代わりに処理してくれるので、ゼロから実装する必要がありません。いくつかのプロンプトと設定手順を踏むだけで、次のような機能がすぐに利用できます：

* セキュアなサインイン & サインアップ（ソーシャル、パスワード、MFA）
* 組み込み UI コンポーネント：ユーザープロフィール、組織管理、ユーザーなり替わり（impersonation）
* B2B アプリ向けのサポート（チーム、ロール、招待）
* Supabase、Stripe（近日対応予定）などとの連携
* 早期アクセスを管理するウェイトリストモード
* 充実した無料枠：10K MAUs（月間アクティブユーザー 1 万人）

<div id="step-by-step-integration-guide">
  ## ステップごとの連携ガイド
</div>

<iframe width="100%" height="315" src="https://www.youtube.com/embed/tyAsNwu_xCI?si=VHCGf2IlFRQzVLeD" title="YouTube 動画プレーヤー" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />

手順は次のとおりです。

<Steps>
  <Step title="Clerk アプリのセットアップ" stepNumber="1">
    <Steps>
      <Step title="ステップ 1">
        Clerk アカウントを作成 → [Clerk.com](https://clerk.com)
      </Step>

      <Step title="ステップ 2">
        Clerk のダッシュボードで新しいアプリを作成します

        <Steps>
          <Step title="ステップ 1">
            Clerk にサインインし、新しいアプリを作成します

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/create-clerk-application.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=3eb11dfb0f3f85b0b6b6b49bb14b9add" alt="Create Clerk Application Pn" width="1840" height="1048" data-path="images/create-clerk-application.png" />
          </Step>

          <Step title="ステップ 2">
            利用したい認証プロバイダを有効化します（例: Google、GitHub）
          </Step>

          <Step title="ステップ 3">
            **Configure > Restrictions** の「Waitlist」を有効にします

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-waitlist.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=0dbc9a96b783c89dea49cc40e6c26baf" alt="Clerk Waitlist Pn" width="1838" height="1026" data-path="images/clerk-waitlist.png" />
          </Step>

          <Step title="ステップ 4">
            **Public API Key** をコピーします

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-api-key.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=4b100e07e88809bfebdc636c799d445a" alt="Clerk Api Key Pn" width="1840" height="1028" data-path="images/clerk-api-key.png" />
          </Step>
        </Steps>
      </Step>

      <Step title="ステップ 3">
        **Clerk を Lovable アプリに追加する**

        <Steps>
          <Step title="ステップ 1">
            **Lovable** で、Clerk を認証プロバイダとして追加します。

            Lovable へのプロンプト:

            <Info>
              Asana のようなスタイルで、美しいプロジェクト・タスク管理アプリを作りましょう。ユーザーは、Clerk を使った認証とユーザー管理でログインとサインアップができるようにしてください。まずは見栄えの良いホームページを作成し、アプリの残りを構築している間は、ユーザーが参加できるように Clerk の waitlist コンポーネントを使いましょう。
            </Info>

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/At48MABj-G93zw7Y/images/asana-clone-lovable.png?fit=max&auto=format&n=At48MABj-G93zw7Y&q=85&s=779eedc11c2ad10d0fa6151f937e31ac" alt="Asana Clone Lovable Pn" width="1830" height="1024" data-path="images/asana-clone-lovable.png" />
          </Step>

          <Step title="ステップ 2">
            指示されたら **Public API Key** を貼り付けます
          </Step>

          <Step title="ステップ 3">
            Lovable がログインページとサインアップページを自動生成します

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/waitlist-component-clerk.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=76350e4c4aabb03f8d73ada79c99c6c4" alt="Waitlist Component Clerk Pn" width="1830" height="1016" data-path="images/waitlist-component-clerk.png" />
          </Step>

          <Step title="ステップ 4">
            デプロイしてテストします — これで Clerk 認証が利用できるようになりました
          </Step>
        </Steps>
      </Step>
    </Steps>
  </Step>

  <Step title="ウェイトリストモードを有効にする（任意）" stepNumber="2">
    <Note>
      **なぜウェイトリストを使うのか？** – アプリを公開する前に、初期ユーザーを集めましょう！
    </Note>

    アプリ公開前のユーザーを集めるには、Clerk の組み込みウェイトリスト機能を使いましょう。

    <Steps>
      <Step title="ステップ 1">
        Clerk ダッシュボードで **Configure > Restrictions > Waitlist** に移動します
      </Step>

      <Step title="ステップ 2">
        新規サインアップは **pending** として表示されます
      </Step>

      <Step title="ステップ 3">
        * サインアップしたユーザーは **pending approval**（承認待ち）になります
        * 管理者は Clerk ダッシュボードからユーザーを承認できます

                  <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-waitlist-pending.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=b1cb4e017c6696f2170d48e643819c37" alt="Clerk ウェイトリストの保留状態 Pn" width="1836" height="1024" data-path="images/clerk-waitlist-pending.png" />
      </Step>

      <Step title="ステップ 4（ボーナス）">
        ウェイトリスト用メール（ブランディングや内容）をカスタマイズします

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-email-templates.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=5283305d887e73b091f90f38de79222c" alt="Clerk メールテンプレート Pn" width="1838" height="1026" data-path="images/clerk-email-templates.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/sms-code-verification.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=c8864119b5019a606848a5ec3314f35f" alt="SMS コード認証 Pn" width="1820" height="1016" data-path="images/sms-code-verification.png" />
      </Step>
    </Steps>
  </Step>

  <Step title="Clerk でのユーザーとチームの管理" stepNumber="3">
    アプリにチームベースのアクセスを設定します。

    <Steps>
      <Step title="Step 1">
        Clerk ダッシュボードで **Organizations** を有効にする

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/organization-management-clerk.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=dee1358df6209650a4e64f09270f9075" alt="Organization Management Clerk Pn" width="1834" height="1010" data-path="images/organization-management-clerk.png" />
      </Step>

      <Step title="Step 2">
        ロールを定義する（Admin、Member、Viewer など）
      </Step>

      <Step title="Step 3">
        メールでユーザーを組織に招待する
      </Step>

      <Step title="Step 4">
        ダッシュボードからロールと権限を割り当てる
      </Step>

      <Step title="Step 5">
        Lovable に次の内容でプロンプトを送る:

        <Info>
          サインアップ後に、ユーザーに組織を作成または参加するよう促す
        </Info>

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-organization-create.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=d73b6ac4b451427dd6d5745679331f59" alt="Clerk Organization Create Pn" width="584" height="748" data-path="images/clerk-organization-create.png" />
      </Step>
    </Steps>

    <Note>
      **Clerk の User Profile コンポーネントを使う**

      * あらかじめ用意されたユーザー管理ダッシュボードを提供
      * ソーシャルログインおよびパスワード認証をサポート
      * ユーザー自身でアカウントと 2FA を管理できる

              <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-organization-members.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=219f9a2976ea8de50adce5d6beb0e779" alt="Clerk Organization Members Pn" width="1832" height="1016" data-path="images/clerk-organization-members.png" />
    </Note>
  </Step>

  <Step title="代理ログインモード（管理者用）" stepNumber="4">
    <Tip>
      **Impersonation Mode とは？**

      管理者は任意のユーザーとしてログインし、問題の調査やトラブルシューティングができます
    </Tip>

    特定のユーザーになりきって、そのユーザーとしてアプリをトラブルシューティングできます。

    <Steps>
      <Step title="Step 1">
        Clerk ダッシュボード > Users で、対象のユーザーをクリックします
      </Step>

      <Step title="Step 2">
        **Impersonate** をクリックします
      </Step>

      <Step title="Step 3">
        そのユーザーの視点からアプリを確認します
      </Step>

      <Step title="Step 4">
        セキュリティ: Impersonation 中の管理者は、パスワード変更などの機密性の高い操作は実行できません
      </Step>
    </Steps>
  </Step>

  <Step title="Supabase との連携（上級向け）" stepNumber="5">
    Clerk Auth と Supabase バックエンドを組み合わせます。

    <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/supabase-clerk.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=099ac332afdc631e19a074357aa1d909" alt="Supabase Clerk Pn" width="640" height="748" data-path="images/supabase-clerk.png" />

    <Note>
      **なぜ Supabase と連携するのか？**

      * ユーザーデータをデータベースに保存する
      * JWT トークンによるセキュアな認証
      * 認証をアプリの機能と連携させる
    </Note>

    **連携方法:**

    <Steps>
      <Step title="Step 1">
        Supabase で、**Settings > API > JWT Secret（**[**ドキュメント**](https://clerk.com/docs/integrations/databases/supabase)**）** に移動します。

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/supabase-clerk-integration-doc.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=4c1b798ebc7906a678616e2c56048bb2" alt="Supabase Clerk Integration Doc Pn" width="1585" height="1180" data-path="images/supabase-clerk-integration-doc.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/sql-editor-supabase.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=639f9464df1fbf406c91d6fd2d408bd8" alt="Sql Editor Supabase Pn" width="1832" height="1046" data-path="images/sql-editor-supabase.png" />
      </Step>

      <Step title="Step 2">
        Clerk で、**JWT Templates > Add Supabase** を開き、JWT シークレットを貼り付けます。

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/At48MABj-G93zw7Y/images/Supabase-api-key-clerk.png?fit=max&auto=format&n=At48MABj-G93zw7Y&q=85&s=6ffb7d603fffe943419234209130d04e" alt="Supabase Api Key Clerk Pn" width="1670" height="1034" data-path="images/Supabase-api-key-clerk.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/jwt-template-clerk.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=5be5b5dd4b216455362ab2b6c8e5542a" alt="Jwt Template Clerk Pn" width="1838" height="1014" data-path="images/jwt-template-clerk.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/jwt-template-clerk-configuration.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=f0364188f00ba2f836cee7cf5b46282f" alt="Jwt Template Clerk Configuration Pn" width="1834" height="1028" data-path="images/jwt-template-clerk-configuration.png" />
      </Step>

      <Step title="Step 3">
        **Clerk を認証プロバイダーとして有効化**します。

        RLS ポリシーを更新して、Clerk の `auth.uid()` を使用するようにします。

        Lovable に次のプロンプトを入力します:

        <Info>
          Clerk と連携するように Supabase をセットアップしましょう。Clerk には Supabase シークレットが設定済みです。ここに、Clerk を使った Supabase クライアント実装の例があります。これを参考にしてください。

          *\[Supabase client configuration import]*
        </Info>
      </Step>

      <Step title="Step 4">
        Clerk が発行したトークンが Supabase によって受け入れられることを確認します。

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/supabase-tasks-table.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=161f00d83acbb33f24220fbd3ccff779" alt="Supabase Tasks Table Pn" width="778" height="382" data-path="images/supabase-tasks-table.png" />
      </Step>
    </Steps>
  </Step>

  <Step title="カスタムドメインを追加（任意）" stepNumber="6">
    <Note>
      **なぜ独自ドメインを使うのか？**

      ブランド認知と信頼性を高めるためです

      [詳しくはこちら](https://docs.lovable.dev/tips-tricks/custom-domain)
    </Note>

    <Steps>
      <Step title="ステップ 1">
        Lovable 内で: **プロジェクト > Settings > Custom Domain**
      </Step>

      <Step title="ステップ 2">
        購入したドメインを入力します（例: `app.yourcompany.com`）
      </Step>

      <Step title="ステップ 3">
        Lovable が自動で DNS を設定します（Lovable から離れる必要はありません）
      </Step>

      <Step title="ステップ 4">
        新しいドメインでアプリをデプロイしてテストします。
      </Step>

      <Step title="ステップ 5">
        完了 ✅ — あなたのアプリはホワイトラベル対応になりました
      </Step>
    </Steps>
  </Step>

  <Step title="まとめと今後のステップ" stepNumber="7">
    **これであなたのアプリには、次の機能が備わりました：**

    * Clerk を使ったセキュアな認証
    * 早期ユーザーを集めるためのウェイトリスト
    * ユーザーとチームの管理機能
    * Supabase データベース連携
    * プロフェッショナルな独自ドメイン
  </Step>
</Steps>

<div id="bonus-build-b2b-features-in-minutes">
  ## ボーナス: 数分で B2B 機能を構築する
</div>

Clerk は次の機能をサポートしています:

* 組織向けロールベースのアクセス制御
* 招待フロー（メールベース、事前構築済み UI）
* 組織プロフィールのカスタマイズ（ロゴ、名前）
* 複数組織の切り替え（例: Slack スタイル）

**Lovable に次のように依頼してみましょう:**

<Info>
  組織切り替え用 UI を追加する
</Info>

<Info>
  ユーザーがチームメイトを招待できるようにする
</Info>

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

* **すでに Supabase Auth を使っていますか？** アプリのロジックを書き直さずに Clerk に切り替えられます。JWT を正しく設定して、認証プロバイダーを入れ替えるだけです。
* **メールのカスタマイズ:** Clerk では、すべてのトランザクションメールテンプレート（ウェイティングリスト、招待、承認）を編集できます。
* **モバイルログイン**: Clerk はパスキー、OTP、SMS に対応しており、Dev モードでは追加の設定は不要です。
* **コンプライアンス**: Clerk は SOC2、HIPAA、GDPR に準拠しています。

<div id="frequently-asked-questions-faq">
  ## よくある質問（FAQ）
</div>

<AccordionGroup>
  <Accordion title="Supabase Auth から Clerk へ簡単に切り替えられますか？">
    はい。Clerk と Supabase はうまく連携します。次の設定を行うだけです。

    * Clerk を設定して JWT を発行するようにする
    * Clerk に Supabase の JWT シークレットを追加する
    * Supabase の RLS ポリシーを、Clerk の `auth.uid()` を使うように更新する

    これにより、既存の Supabase バックエンドのアプリに、最小限の変更で Clerk を組み込めます。
  </Accordion>

  <Accordion title="Google や GitHub などの OAuth プロバイダを設定する必要がありますか？">
    本番環境でのみ必要です。開発モードでは、Clerk がテスト用の共有クレデンシャルを提供します。本番環境では、次のことを行ってください。

    * 独自の Google / GitHub / その他のクレデンシャルを用意する
    * Clerk の **OAuth settings** に追加する
  </Accordion>

  <Accordion title="Organizations と Users の違いは何ですか？">
    * **Users**：あなたのアプリにログインできる個々のユーザー
    * **Organizations**：ユーザーのグループ（チーム、企業など）

    次のような場合は Organizations を使いましょう。

    * ロールベースのアクセス（Admin、Member など）
    * ユーザーにチームメイトを招待してもらいたい場合
    * B2B SaaS 形式のフロー
  </Accordion>

  <Accordion title="“Impersonation Mode” とは何ですか？">
    管理者が任意のユーザーとしてログインできるモードです。次のような場面でとても役立ちます。

    * ユーザーの問題をデバッグする
    * ユーザーの体験を把握する
    * ライブサポートを提供する

    <Note>
      Clerk は、インパーソネーション中の管理者ができることを制限しています（例：パスワードの変更は不可）。
    </Note>
  </Accordion>

  <Accordion title="Clerk の UI コンポーネントはカスタマイズできますか？">
    はい。Clerk では次のことができます。

    * `appearance` プロップを使ったフル CSS 対応
    * Clerk の React hooks を使って、完全にカスタムな UI を構築するオプション

    そのままの外観を使うことも、アプリのブランドに完全に合わせることもできます。
  </Accordion>

  <Accordion title="Clerk からウェイティングリストのユーザーにメールを送れますか？">
    現時点では次の動作になります。

    * ウェイティングリストから承認されたユーザーには自動通知される
    * 一括メール送信のサポートは **近日対応予定**

    それまでは、メールアドレスをエクスポートして、お好みのメールツールを使用してください。
  </Accordion>

  <Accordion title="Clerk は無料で使えますか？">
    はい。Clerk には十分な無料枠があります。

    * **月間アクティブユーザー（MAU）10,000人** まで
    * 有料プランは **\$25/月** からで、その後は利用量に応じた課金

    スケールするまでは、支払いなしで本番環境でも利用できます。
  </Accordion>

  <Accordion title="Clerk はコンプライアンス（SOC2、HIPAA、GDPR）に対応していますか？">
    はい。Clerk は次のとおりです。

    * **SOC 2 認証取得済み**
    * **HIPAA 準拠**
    * **GDPR 対応**

    規制産業向けのプロダクトを開発するチームに最適です。
  </Accordion>

  <Accordion title="請求に Clerk と Stripe を一緒に使えますか？">
    近日対応予定です。次のことができるようになります。

    * プランの定義（例：Free、Pro、Enterprise）
    * Clerk の UI から、ユーザー / Organization にサブスクリプションを管理してもらう
    * Stripe にデータを自動同期する

    最新情報は X で [@clerkdev](https://x.com/clerkdev?lang=en) をフォローしてください。
  </Accordion>
</AccordionGroup>

この FAQ に質問を追加してほしい場合は、[Discord でお知らせください](https://discord.gg/lovable-dev)。

<div id="final-thoughts">
  ## 最後に
</div>

Clerk は認証をプロンプトで完結させます。もう自分で実装する必要はありません。

**数回のクリックとプロンプトを入力するだけで、あなたのアプリには次のような機能が備わります：**

* 安全でスケーラブルな認証
* チームと組織の管理
* デバッグ用のなりすましツール
* Supabase を利用したデータおよびアクセス制御
* 洗練された UX のためのカスタムドメイン対応
