v0 アプリのログイン方式
| サインイン方法 | ユーザーに届くメール | Proxy Mail QA でのテスト |
|---|---|---|
| メールアドレスとパスワード(Supabase) | 確認、パスワードリセット、メールアドレスの変更 | はい |
| マジックリンクまたはコード(Supabase) | サインイン用のリンクまたはコード | はい |
| メールアドレスとパスワード(Clerk) | 確認コード、パスワードリセットのコード | はい |
| Google、GitHub などのボタン | サインイン用のメールはなし | いいえ。自分のアカウントを使ってください |
アプリがどれを使っているかわからない場合は、v0 に「このアプリはどの認証を使い、どのメールを送りますか?」と聞いてください。各方式の仕組みはログイン方式の解説にあります。
すべてのログインメールを5分でテスト
- デプロイしてから本番アドレスを開きます。 v0 内のプレビューは使いません。
- Proxy Mail QA でアドレスを作成します。フォームで名前を求められる場合は、生成したペルソナを使います。
- サインアップし、行のリンクかコードを使います。 確認リンクには Open link と Copy link ボタン、コードには Copy ボタンがあります。
- 続けて残りをテストします: サインアウトし、パスワードをリセットし、新しいパスワードでサインインして、行に保存します。
- チームが公開前にプレビューデプロイで変更を確認している場合は、プレビューデプロイでも 1 回繰り返します。
Supabase:確認すべき 3 つの設定
1. Site URL と Redirect URLs。 Supabase プロジェクトで Authentication → URL Configuration を開きます。Site URL を本番ドメインに設定し、Redirect URLs にカスタムドメインと https://*-your-team.vercel.app/**(Vercel のチーム名入り)を追加して、プレビューデプロイでも動くようにします。Proxy Mail QA は localhost に向かうリンクを警告します。確認後にそこへリダイレクトするだけのホスト型 Supabase リンクも対象です。詳しいガイド。
2. コード内のリダイレクト。 サインアップ、マジックリンク、パスワードリセットでは、環境変数か現在のページのアドレスを使って、サイトの実際のアドレスに戻すよう Supabase に指定します。localhost をハードコードしてはいけません。
3. メール送信元。 Supabase の組み込み送信元は開発用です。送信は 1 時間に 2 通までで、宛先は Supabase プロジェクトのチームメンバーに限られるため、テスト用アドレス宛てのメールは Supabase から出ていきません。外部のアドレスでテストする前や公開前に、Resend などのプロバイダーでカスタム SMTP を設定してください。メールが届かないほかの原因。
Clerk:開発環境と本番環境
Clerk はアプリを独自のユーザーを持つ開発インスタンスで開始します。公開前に本番インスタンスを作成し、Clerk が示す DNS レコードでドメインを接続します。開発環境で作ったアカウントは引き継がれません。新しいアドレスで本番環境に改めてサインアップし、確認コードが届いて機能するかを確認してください。
v0 用のコピー&ペースト用プロンプト
List every email this app sends: sign-up confirmation, verification code, magic link, password reset, invite and email change. For each, tell me what triggers it, which URL its link points to, and how long its link or code stays valid. Flag anything that uses localhost.Build every redirect in sign-up, magic link and password reset emails from an environment variable for the site's public URL, falling back to the current page's address. Never hard-code localhost.Add a Forgot password flow: a page to request the email, and a page to choose a new password that then signs the user in. Show a clear message when the link has expired or was already used, with a button to send a new one.