認証
ルール
- Webアプリにはセッションベース認証 — JWTはAPI間通信のみ
- ルート保護のためのミドルウェア — レンダリング前にセッションを確認
- ソーシャルプロバイダー: Google + GitHubを最低限 — 対象ユーザーに応じて追加
- パスワード代替としてのマジックリンク — よりシンプルでセキュア
- ロールベースアクセス:
user.roleフィールドとミドルウェアチェック - 全ミューテーションエンドポイントにCSRF保護
- セキュアクッキー設定:
httpOnly、secure、sameSite: "lax"、適切なmaxAge - リフレッシュトークンのローテーション — トークンを永久に存続させない
避けるべきこと
- localStorageへのトークン保存 — httpOnlyクッキーを使用
- 独自のパスワードハッシュ実装 — 認証ライブラリ経由でbcrypt/argon2を使用
- サーバーサイドバリデーションなしのクライアントサイドロールチェック
- フォーム送信におけるCSRF保護の欠如