公開サイトは閲覧専用にする運用メモ(2/9前半)

目次(13件)
フック
結論として、 公開サイトを安全に運用するには 「管理導線を見せない」設計が有効です。
2/9は、 新規登録停止と公開ヘッダー整理を 同時に進め、 一般ユーザーが管理機能に 触れにくい状態を作りました。
この記事は、 その前半作業を 「なぜこの順で進めたか」まで含めて 整理した実践メモです。
そもそも、なぜブログサイトを構築しているのか
結論として、 このサイトは 「日々の実装ログを資産化し、 あとで再利用できる形で残す」 ために構築しています。
SNSの短文だけでは 流れてしまう学びを、 記事として蓄積し、 未来の自分や 同じ課題を持つ読者が 参照できる状態を目指しています。
そのため、 公開導線はシンプルに保ち、 投稿や管理は 意図した人だけが触れる設計に 分離する必要がありました。
この記事の前提(ここだけ先に)
結論として、 前提を共有しておくと、 この後の判断理由が 追いやすくなります。
- サイトは 「公開ページ(閲覧用)」と 「管理画面(投稿操作用)」を 同じアプリで運用している。
- 2/9時点では、 画面上にログインや新規登録へ 進める導線が一部残っていた。
- 目標は 「一般ユーザーは読むだけ」 「管理操作は管理者のみ」に 分離すること。
この記事は、 まず画面導線を整理した 前半の記録です。 認証基盤側の完全停止は 後半で扱います。
この記事で得られること
結論として、 次の3点を そのまま運用に流用できます。
- 公開画面から 管理導線を消す手順
- ログイン導線を 必要最小限に絞る運用ルール
- 反映後に 最低限確認すべきチェック項目
結論先出し
画面の導線整理だけでも、 誤操作リスクと 不要なアクセスを 大きく下げられます。
2/9時点で、 公開側は閲覧専用、 管理操作は直URL経由に 分離する形へ寄せました。
以下に、 実施内容と確認結果を 順番にまとめます。
なぜ最初に導線整理をやったか
結論として、 権限制御を強める前に、 誤って押される入口を 減らすのが最短でした。
当時の状態は、 「公開ヘッダーに ログイン導線がある」 「新規登録へのリンクが残る」 だったため、 まず触れる入口を減らす 方針にしました。
この段階で 100点を目指すのではなく、 前半で“見せない”、 後半で“入れない”に分けて 進めています。
図: 公開ヘッダー導線の Before/After 比較(マスク済み)
2/9前半で実施したこと
結論として、 この日の前半は 「登録停止」と 「公開導線の整理」に 集中しました。
今日やったこと
- 新規ログイン停止の 続きを実施
src/app/signup/page.tsxの 登録フォームを停止し、 「新規登録停止中」表示へ変更src/app/login/page.tsxから 「新規登録へ」リンクを削除
この2点で、 「ログイン画面から 自然に登録へ流れる経路」を 先に塞いでいます。
公開導線の整理
src/components/SiteShell.tsxから 公開ヘッダーのログイン/管理ボタンを 非表示化- 公開ページを 「記事閲覧のみ」の導線へ固定
公開ページを訪れた人が 管理導線に触れない構造にし、 役割の違う導線を 意図的に分離しました。
確認結果
結論として、 コード反映とビルド確認は この時点で問題ありませんでした。
npm run lintは成功npm run buildは成功- 画面上で 新規登録導線が 出ないことを確認
- 未ログイン時の
/adminは/login?next=...誘導を維持
つまり、 公開導線は削っても 管理フローは壊さずに 残せています。
まだ必要だった作業(当時メモ)
結論として、 画面側の停止だけでは不十分で、 認証基盤側の停止が 残っていました。 ここを残したままだと、 UI上は見えなくても 設定次第で登録可能な余地が 残るためです。
- Supabase Dashboard 側の Sign up 設定確認
Authentication > Providers > Emailの 新規登録許可を OFF にする (完全停止)
図: 反映後の運用ルール3点をカード化
反映後の運用
- 公開サイトでは ログイン導線を表示しない。
- 管理操作は
https://my-blog-three-lemon.vercel.app/loginを 直接入力して実施する。 - 一般ユーザーは閲覧専用、 管理操作は管理者のみの運用を 継続する。
この3点を 運用ルールとして固定すると、 画面の見え方と 実際の権限方針が ずれにくくなります。
まとめ
結論として、 導線を減らすだけでも 公開運用の安全性は 上げられます。
この前半で 「見せない導線」を作れたので、 後半は認証設定側(Supabase)を 止めて運用を完成させる 流れになります。
次に進むときは、 まず Sign up OFF の状態確認から 着手すると迷いにくいです。