AI で作ったアプリの多くは、Supabase(Lovable、Bolt、v0、および Cursor や Claude Code の多くのアプリ)、Firebase(Antigravity)、Clerk、またはビルダー独自のログイン(Replit、Base44)でログインさせます。各プロバイダーのページでそれぞれを詳しく説明しています:Supabase の問題、Firebase の問題。このページでは、生成されたアプリがさらに加える問題を扱います。
自分では動くのに、他の人では動かない
アプリを作ったのはあなたなので、Supabase プロジェクトのチームに入っていて、おそらくまだログインしたままで、ビルダーが示したドメインでテストしています。テスターにはそのどれもありません。
- メールサービスがあなたにしかメールを送りません。 Supabase の組み込み送信機能はプロジェクトのチームにしか届けず、上限は 1 時間に 2 通です。カスタム SMTP を設定してください。Lovable Cloud では、Auth 設定で送信上限を確認してください。
- すでにログインしています。 セッションがある人には、壊れた登録も問題なく見えます。一度も使われていないアドレスで、プライベートウィンドウでテストしてください。
リンクがプレビューや localhost を開く
メールのリンクはアプリの公開アドレス設定から作られます。これが http://localhost:3000 のままだったり、次のデプロイで変わったプレビューリンクに設定されていたりすると、開けないページにたどり着きます。Lovable Cloud では、自分で設定していない限り、公開時に Lovable が設定します。自分の Supabase プロジェクトでは Site URL です。公開ドメインに設定し、プレビューは Redirect URLs に追加してください。詳しくはメールが localhost にリンクする理由をご覧ください。Proxy Mail QA はアドレスの行でこうしたリンクを指摘します。
リンクをクリックしても誰もログインできない
リンクはアプリにコードを返し、あるページがそれをセッションに交換する必要があります。生成されたアプリはリンクをトップページに送ることが多く、そこではコードが無視されるため、ログアウトした状態で着き、失敗したと思われます。ログインを完了するページ(多くは /auth/callback)を作り、メールのリンクをそこに向けるよう頼んでください。Supabase では、テスターは登録したブラウザでリンクを開く必要があります:理由。
何が起きても「メールを確認してください」
生成された登録フォームは、プロバイダーの応答に関係なく同じ成功メッセージを表示することがよくあります。その裏では次のことが起きています。
- そのアドレスにはすでにアカウントがあります。 Supabase は誰がアカウントを持っているかを明かさないよう、登録が成功したかのように応答し、何も送りません。アプリは「そのアドレスが新しければ、リンクを送りました。登録済みですか?ログインするか、パスワードをリセットしてください。」と表示すべきです。
- 早すぎました。 60 秒以内の 2 回目のリクエストは拒否され、アプリはそのエラーを隠します。
- メール確認がオフです。 アカウントが作成されてログインされ、メールは一切送られません。
エラーがあればプロバイダーのエラーを表示し、どちらの場合でも正しくなるよう成功メッセージの文言を変えるよう、ビルダーに頼んでください。
リセットメールの行き先がない
パスワードリセットのリンクはその人をログインさせ、その後アプリが「新しいパスワードを選ぶ」フォームを表示する必要があります。生成されたアプリはこのページを省くことが多く、その人は古いパスワードのままログインし、変更する手段がありません。リンクで開くリセットページを頼み、最初から最後までテストしてください:パスワードリセットメールをテストする。
実在の人を拒否する、または不正なデータを通すフォーム
- 厳しすぎる: 生成されたフォームの中には、
+や大文字、.devのような新しいドメイン末尾を含むアドレスや、アポストロフィを含む名前を拒否するものがあります。特殊なアドレスと特殊な名前とパスワードに試すべき値をまとめています。 - 緩すぎる: フォームがデータベースの受け付けない値を受け入れ、アプリの
profilesテーブルが拒否すると「Database error saving new user」で登録が失敗します。255 文字の名前や空のユーザー名で見つかります。
開発中にメール確認がオフにされた
ビルダーは登録を試しやすくするためにメール確認をオフにすることがあり、それがリリース時もオフのまま残ります。すると誰でも自分のものではないアドレスで登録でき、確認メールが動くかどうかも確かめられません。アプリを共有する前にオンに戻し、メールを受信できるアドレスでテストしてください。
エージェントが完了したと言う
コーディングエージェントが確認するのはフォームが送信されることで、メールが届くことやリンクが動くことではありません。Proxy Mail QA MCP server を接続し、新しいアドレスで登録してコードやリンクを待ち、登録を完了するよう頼んでください。読み取るのはコードかリンクだけで、メールの本文は読みません。
ビルダー用のコピー&ペーストできるプロンプト
Check our login setup: list every email the app sends (sign-up confirmation, magic link, password reset, email change), which service sends it, and the page each link opens. Flag any link built from localhost or a preview address, and any link that opens a page that doesn't finish signing in.Add a page that finishes sign-in when someone opens the link in a confirmation or magic-link email, and a page to choose a new password after a reset link. Point the email links at them.On sign-up, show the error the login service returns, if any. When it succeeds, say: "If that address is new, we've sent a link. Already signed up? Sign in or reset your password." Never say an email was sent when it wasn't.お使いのビルダーのガイド
それぞれ独自のログイン方法と設定を扱っています:Lovable、Bolt、v0、Replit、Base44、Antigravity、Cursor、Claude Code。どのログインを使っているかわからない場合は、ログイン方法の比較をご覧ください。