セクション 34 / 42

Web開発

ログイン機能(認証)

会員機能の心臓部。自分で作らず“専門サービス”に任せる

会員登録・ログイン・マイページ——多くのアプリに欠かせないのが認証(にんしょう)です。認証とは「この人は本当に本人か?」を確かめる仕組みのこと。

認証と認可(似てるけど別物)

認証(Authentication)
あなたは誰?を確かめる(=ログイン)。
認可(Authorization)
あなたは何をしてよい?を決める(例:自分のデータだけ見られる)。

鉄則:認証を“ゼロから自作”しない

パスワードの安全な保存、総当たり攻撃への対策、再設定メール……認証には専門的な落とし穴が山ほどあります。そこで、認証つきのサービス(BaaS)に任せるのが現代の定番です。

Supabase
認証+データベースのセット。このサイトの会員機能もこれ。
Firebase
Googleの定番。スマホアプリにも強い。
Clerk / Auth0
認証専門。きれいなログイン画面を手早く用意できる。

このサイトのログインもSupabase製

あなたが使った会員登録・ログイン・進捗保存は、まさにSupabaseで動いています。「Supabaseで会員機能を付けて」と頼めば、Claude Codeが同じような仕組みを組んでくれます。

落とし穴:RLS(行レベルセキュリティ)の設定漏れ

SupabaseなどのBaaSでは、RLSという「自分の行しか触れない」設定がデータの門番です。アプリの画面で隠しても関係なく、RLSが抜けたテーブルは世界中の誰でも全データを読めてしまいます(実際に頻発している事故です)。AIに作らせたら「全テーブルでRLSが有効か、ポリシーは“自分の行のみ”になっているか確認して」と必ず頼みましょう。

知っておくと安心の言葉

  • ハッシュ化:パスワードを“元に戻せない形”に変換して保存すること。そのまま(平文)保存は重大事故。
  • ソーシャルログイン:「Googleでログイン」のように他サービスのアカウントを借りる方式。
  • 二段階認証(2FA):パスワード+確認コードで二重に守る仕組み。

パスワードを自分で抱えない

認証サービスに任せれば、パスワードの保存や保護はサービス側が引き受けてくれます。「自分のデータベースに生のパスワードを保存」だけは絶対にしないこと。

頼み方の例

「Supabaseでメール+パスワードのログインを付けて。ログインした人だけマイページを見られるように」——認証(ログイン)と認可(誰が何を見られるか)をセットで伝えるのがコツです。

理解度チェック

読み込み中…