英語から自動翻訳されています。

英語で読む
Proxy Mail QA

確認リンクが localhost:3000 に飛ぶ理由と直し方

ステージングでサインアップし、メールが届き、リンクをクリックすると localhost:3000 で「このサイトにアクセスできません」と表示されます。メールが壊れているのではありません。アプリが開発用のアドレスをメールに入れているのです。

更新日:

何が起きているのか

確認、マジックリンク、招待、リセットのどのメールにも、アプリへ戻るリンクが含まれています。認証プロバイダーやフレームワークは、そのリンクを設定から組み立てます。サイト URL、リダイレクト URL、またはメーラーに設定されたホストです。その設定がまだ http://localhost:3000 のままだと、すべてのメールが開発者自身のコンピューターを指します。

リンク自体はホスト型(例:https://yourproject.supabase.co/auth/v1/verify?...)で、その後のリダイレクト先のページだけがローカルという場合もあります。確認は成功し、その後ブラウザが localhost:3000 に送られて失敗します。メールは問題なく見えるため、このパターンは見落としがちです。

Supabase での直し方(自分の Supabase プロジェクトを使う Lovable アプリを含む)

  1. Supabase のダッシュボードで Authentication → URL Configuration を開きます。
  2. Site URL を本番のアドレス(https://your-app.lovable.app や独自ドメインなど)に設定します。新しい Supabase プロジェクトでは、ここが http://localhost:3000 になっています。
  3. 使用する他のすべての環境(ステージング、プレビュードメイン、開発用の localhost)を Redirect URLs に追加します。プレビューデプロイ向けにワイルドカードも使えます。
  4. サインアップやサインインの呼び出し時にコードが emailRedirectTo や redirectTo を渡している場合は、現在のサイト(例:window.location.origin)または環境変数から組み立ててください。許可リストにないリダイレクトは Site URL にフォールバックします。
  5. メールテンプレートをカスタマイズしている場合は、ハードコードしたアドレスではなく、テンプレートの確認 URL やサイト URL の変数を使っているか確認してください。

Firebase Authentication での直し方

他のスタックでの直し方

スマートフォンのシミュレーターやエミュレーターでは

iOS シミュレーターはコンピューターのネットワークを共有するため、localhost のリンクが開きます。Android エミュレーターはそうではありません。コンピューターには 10.0.2.2 でアクセスするため、localhost:3000 へのリンクでは何も開きません。エミュレーターでは、アプリのリンクを http://10.0.2.2:3000 に向けるか、できれば両方からアクセスできるステージングのアドレスに向けてください。詳しくは モバイルアプリ をご覧ください。

Proxy Mail QA による警告

テストメール内のリンクがローカルのアドレスを指している場合、または確認後にそこへリダイレクトする場合、Proxy Mail QA は Accounts の行に印を付け(「Redirects to localhost:3000」)、受信トレイで説明します。誰かが「確認が壊れている」と報告する前に、環境の設定ミスだとひと目でわかります。

意図的にローカルビルドをテストしている場合は、This is my dev environment を選んでください。そのプロジェクトでは、そのホストへのリンクに警告が付かなくなり、メールのチェックも通るようになります。プロジェクトの設定から元に戻せます。コーディングエージェントは MCP ツール mark_dev_host でホストを自らマークでき、テストスイートは POST /v1/project/dev-hosts(Node.js クライアント では markDevHost、Python ヘルパー では mark_dev_host)でマークできます。

次のサインアップテストで試してみてください

無料プラン、クレジットカード不要。アドレスを作成して、コードやリンクが届くのを確かめてください。

無料アカウントを作成アプリを開く

よくある質問

なぜ開発者ではリンクが動くのに、自分では動かないのですか?

localhost は常に「このコンピューター」を意味します。開発者のノートパソコンでは開発サーバーが動いているので、リンクが開きます。他の人のマシンでは何も待ち受けていないので、失敗します。

localhost のリンクが正しい場合はありますか?

はい。意図的にローカルビルドをテストしていて、クリックするのと同じコンピューターで開発サーバーが動いている場合です。Proxy Mail QA でそのホストを開発環境としてマークすると、そのプロジェクトでは以後そのホストへのリンクに警告が付かなくなります。

設定を直しました。なぜ古いメールはまだ localhost にリンクしているのですか?

アドレスは送信時に各メールに書き込まれます。設定を変更したら新しいメールを要求してください。古いメールのリンクは古いままです。

Proxy Mail QA はどのリンクに警告を付けますか?

localhost、127.0.0.1、0.0.0.0、192.168.x.x などのプライベートネットワークのアドレス、.local、.test、.localhost で終わる名前へのリンクです。加えて、Supabase の redirect_to や Firebase の continueUrl のように、確認後にそれらのいずれかへリダイレクトするホスト型のリンクも対象です。

AI ツールでアプリを作りましたか?使ったツールを選んでください

このページについて質問がありますか?

質問はどの言語でもかまいません。ドキュメントからすぐに回答を得ることも、Proxy Mail QA チームに質問を送ることもできます。チームからの返信は英語です。