Skip to content

認証機能をClaude Codeで実装する

認証機能はアプリケーションのセキュリティの根幹を担う部分です。実装ミスが脆弱性に直結するため、Claude Codeと一緒に進める際も「何を作るか」を明確に伝えることが重要になります。

まずは要件を整理してプロンプトを組み立てる

Section titled “まずは要件を整理してプロンプトを組み立てる”

Claude Codeへの指示が曖昧だと、セキュリティ上のベストプラクティスが抜けた実装が生成されることがあります。最初のプロンプトで「何の認証か」「どのライブラリを使うか」「どんな環境か」を明示しましょう。

たとえばJWT認証を実装したいなら、次のように入力します。

Node.js + Express環境でJWT認証を実装してください。
ライブラリはjsonwebtokenとbcryptjsを使い、
アクセストークンの有効期限は15分、
リフレッシュトークンはhttpOnlyクッキーで管理する実装にしてください。

このように具体的な要件を並べると、Claude Codeはセキュリティを考慮した実装を出力しやすくなります。

プロンプト: AIへの指示文。Claude Codeへの指示の質がそのまま出力の質に影響する。トークン: AIがテキストを処理する最小単位。日本語は1文字あたり約1〜2トークン。使用量に応じてAPIコストが変わる。JWT: JSON Web Token の略。ユーザー認証情報をJSON形式でエンコードしたトークン。ヘッダーに付けてAPIを呼び出す際に使う。

生成されたコードを段階的に確認する

Section titled “生成されたコードを段階的に確認する”

Claude Codeが出力したコードをそのままコピーするのは危険です。認証周りは特に、以下のポイントを自分の目で確認しましょう。

  • シークレットキーが環境変数から読み込まれているか
  • パスワードがハッシュ化されているか
  • トークンの検証ロジックに抜け漏れがないか

疑問点はすぐにClaude Codeに質問できます。

上記のコードで、JWTの署名アルゴリズムにHS256を使っていますが、
RS256に変更した場合のメリットとデメリットを教えてください。
また、RS256に変更した場合のコードも示してください。

このように「なぜこうなっているのか」を掘り下げることで、コードの理解と品質が同時に高まります。

OAuth: 外部サービス(Google・GitHubなど)のアカウントを使ってログインを実現するための認証フレームワーク。環境変数: APIキーやデータベース接続情報など、コードに直接書きたくない値をOSやサーバーに設定する仕組み。

セッション管理とOAuthの実装パターン

Section titled “セッション管理とOAuthの実装パターン”

セッションベースの認証を実装する場合、Expressであればexpress-sessionconnect-pg-simpleの組み合わせが定番です。Claude Codeに次のように依頼しましょう。

Terminal window
# 必要なパッケージをまずインストール
npm install express-session connect-pg-simple

その後、Claude Codeに「PostgreSQLをセッションストアとして使うexpress-sessionの設定コードを書いてください。securesameSiteなどのクッキーオプションも本番環境向けに設定してください」と伝えると、本番稼働に耐える設定が得られます。

OAuth実装では「Google OAuthをPassport.jsで実装する」といった具体的な組み合わせを指定するのがコツです。ライブラリ名まで明示することで、最新の推奨パターンに沿ったコードが生成されやすくなります。認証機能はClaude Codeを「ペアプログラマー」として活用しながら、必ず自分でレビューするという習慣を持ちましょう。

npm: Node.jsのパッケージ管理ツール。`npm install` でライブラリをインストールする。