ログインゲート/購入者判定/スコープ分割の実装・テストは全部緑になっています。ただ「本物のGoogleログイン」と「本番反映」だけは、あなたの手と承認が要ります。ここに手順をまとめました。
目的:基本ログインの同意画面に Googleドライブの権限が出てこないことを、実際のGoogle画面で確認する(=今回の設計の一番の肝)。あわせて購入者ゲートと退会時のデータ持ち出しも触る。
設定ファイルを用意する
アプリのフォルダで、テンプレートを複製して .env.local を作ります。
cd C:\Users\HanaP\workspace\brain\_worktrees\jibun-fp-rich\55_Projects\personal-fp-app\app copy .env.local.example .env.local
中身を4つ埋める
エディタで .env.local を開き、下の値を入れます。上3つは以前Drive同期を動かした時の値の使い回しでOK。最後の1行だけが今回の新顔です。
| 変数 | 入れる値 |
|---|---|
AUTH_SECRET | セッション暗号鍵(既存の値/無ければ openssl rand -base64 32) |
AUTH_GOOGLE_ID | Google OAuth クライアントID(既存) |
AUTH_GOOGLE_SECRET | Google OAuth クライアントシークレット(既存) |
ENTITLED_EMAILS | あなたのGoogleアカウントのメール(今回追加・1行) |
ENTITLED_EMAILS を空のままにすると、あなた自身も含めて全員が購入案内(paywall)に飛ばされます(安全側に倒す設計)。必ず自分のメールを入れてから起動してください。Googleコンソール側を確認
2点だけ。Google Cloud Console の該当OAuthクライアントで:
http://localhost:3000/api/auth/callback/google がある(ローカルは3000番で起動します)起動する
npm run dev
ブラウザで http://localhost:3000/dashboard を開く。
目で見て確認(チェックリスト)
/dashboard を開くと /signin に飛ばされる/dashboard に戻ってくる/account でメール/利用ステータス/同期権限が表示され、「データをエクスポート」でJSONがダウンロードできる本番は Netlify(jibun-fp.netlify.app)。middlewareのゲートは、この本番デプロイで初めて Netlify Edge の実環境に乗ります(ローカルのスモークは別ランタイム)。出す前に環境変数のチェックリストだけ守ってください。
feat/jibun-fp-s1(worktree)にあり、まだ本流(main)に統合していません。本番に出すなら、先にブランチ統合の判断が要ります(ここはタイミングをあなたが決めるところ)。本番の環境変数チェックリスト
E2E_AUTH_BYPASS は本番に設定しない(テスト用の抜け道。本番に置くとゲートが無効化される)AUTH_TRUST_HOST=true があること(無いとログインが全部“未ログイン扱い”になる。今回の実測で必須と判明。現本番は動いているので設定済みのはず)AUTH_SECRET / AUTH_GOOGLE_ID / AUTH_GOOGLE_SECRET はそのままhttps://jibun-fp.netlify.app/api/auth/callback/google がGoogleコンソールのリダイレクトURIにあるデプロイコマンド
cd 55_Projects/personal-fp-app/app netlify deploy --build --prod
netlify env:set)で管理します。DEPLOY_REGISTRY に残る vercel env 系のコマンドは旧ホスティングの名残なので使いません。出した後の確認
/signin に飛ぶこの2件が終われば S2(認証ゲート)はクローズです。実装・テスト・レビュー(セキュリティ指摘の修正含む)はすべて完了済み。
関連:plan ~/.claude/plans/personal-fp-app-s2-auth-gate.md / 完了サマリ 55_Projects/personal-fp-app/CLAUDE.md(S2認証ゲート 完了状況)/ ブランチ feat/jibun-fp-s1(worktree jibun-fp-rich)。