[005]2026.03.16log

トグル一つ、二晩

デプロイは成功したのにログインできなかった夜

ブラウザにURLを入力した。

stacktube-production.up.railway.app

画面が表示された。私が作った——正確にはAIが作り私が指示した——ランディングページがインターネット上に存在していた。機能紹介、料金表、FAQ。全部あった。管制塔にURLを送ったら確認してくれた。「ランディングページ正常レンダリング、全セクション確認。」

できた。

しかし「できた」の賞味期限は短かった。

会員登録ボタンを押した。メールアドレスとパスワードを入力した。登録ボタンを押した。エラーが出た。

validation_failed: Unsupported provider: provider is not enabled

このエラーで理解できた単語は「not enabled」だけだった。何かが有効化されていないという意味。しかし何が?

エラーを管制塔に送った。答えが来た。

「SupabaseでEmail Providerが無効化されているために発生するエラーです。」

Supabaseはこのプロジェクトでユーザー認証を担当する外部サービスだ。管制塔の案内に従った。Supabaseダッシュボードにアクセス。Authentication → Providers → Email。そこにトグルスイッチがあった。オフになっていた。オンにした。

再び会員登録を試みた。できた。

トグル一つ。

しかしこのトグルに辿り着く前に、別の問題があった。リダイレクトURLというものだった。

デプロイすると、アドレスが変わる。自分のPCではlocalhost:3000だったアドレスが、インターネットに上げるとxxxxx.up.railway.appになる。当然のことだ。しかし私が知らなかったのは、認証サービスにこの新しいアドレスを「教えなければならない」ということだった。ログイン後にユーザーをどこに戻すかを認証サービスが知る必要があるのに、新しいアドレスを伝えていなかったのだ。

そしてこの二日の間に、セキュリティ事故が一つあった。

管制塔にエラーログを送る過程で、GitHub Personal Access Tokenが一緒に露出してしまった。これは自分のコード保管庫にアクセスできる鍵のようなもので、チャット画面にそのまま出てしまったのだ。

管制塔がすぐに警告を出した。「このトークンを直ちに無効化してください。」

こういうミスは初心者が必ず一度はやるものだという。APIキー、トークン、パスワードのようなものは、コードに直接入れたりチャットに晒したりしてはいけない。環境変数という別の場所に保管すべきだ。分かっていたが、急いでエラーをコピーしているうちに一緒に付いてきてしまった。

この二晩で学んだことを整理するとこうなる。

エラーは重なって来る。一つ直すとその裏に隠れていた別のエラーが現れる。これは驚くが正常だ。最初のエラーが塞いでいたから二番目のエラーが見えなかっただけで、二番目のエラーは最初からそこにあった。

そしてエラーの原因は大抵些細なものだ。トグル一つがオフだった。URL一つが登録されていなかった。このレベル。システム全体が間違っているわけではない。どこか一つが抜けているか、合っていないだけだ。


🔧 このエピソードの技術用語解説

デプロイ(Deploy/Deployment) 自分のPCだけで動くプログラムをインターネットに公開し、誰でもアクセスできるようにすること。レストランの例えなら、試験営業から正式開業への転換。

Railway コードをアップロードすると自動でサーバーを構築してくれるデプロイプラットフォーム。

Supabase Auth 会員登録、ログイン、パスワード管理を代行するサービス。認証システムを自前で作るとセキュリティリスクが高いため、専門サービスを使うのが業界標準。

Provider(認証プロバイダー) ログイン方法の種類。Email、Google、GitHubなどがそれぞれ一つのProvider。Supabaseで該当Providerを「オン」にしないとそのログイン方法は使えない。

リダイレクトURL(Redirect URL) ログイン成功後にユーザーを「どこに戻すか」を伝えるアドレス。デプロイ後にアドレスが変わるため、認証サービスに新しいアドレスを伝えないとログイン後に迷子になる。

トークン(Token) デジタル身分証。APIトークンは「この人はこのサービスを使う権限がある」という証明書。露出すると他人が自分のアカウントで行動できるため、直ちに無効化すべき。