api-authentication
JWTやOAuth 2.0、APIキー、セッション管理を用いて安全なAPI認証を実装します。APIのセキュリティ確保、トークン管理、またはユーザー認証フローの構築が必要な場合に使用してください。
description の原文を見る
> Implement secure API authentication with JWT, OAuth 2.0, API keys, and session management. Use when securing APIs, managing tokens, or implementing user authentication flows.
SKILL.md 本文
API 認証
目次
概要
JWT トークン、OAuth 2.0、API キー、セッション管理を含む包括的な認証戦略を API に実装します。適切なセキュリティプラクティスに従った実装を提供します。
使用する場合
- API エンドポイントの保護
- ユーザーログイン/ログアウトフローの実装
- アクセストークンとリフレッシュトークンの管理
- OAuth 2.0 プロバイダーの統合
- 機密データの保護
- API キー認証の実装
クイックスタート
最小限の動作例:
// Node.js JWT 実装
const express = require('express');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcrypt');
const app = express();
const SECRET_KEY = process.env.JWT_SECRET || 'your-secret-key';
const REFRESH_SECRET = process.env.REFRESH_SECRET || 'your-refresh-secret';
// ユーザーログインエンドポイント
app.post('/api/auth/login', async (req, res) => {
try {
const { email, password } = req.body;
// データベースからユーザーを検索
const user = await User.findOne({ email });
if (!user) {
return res.status(401).json({ error: 'Invalid credentials' });
}
// パスワードを検証
const isValid = await bcrypt.compare(password, user.password);
if (!isValid) {
return res.status(401).json({ error: 'Invalid credentials' });
}
// ... (完全な実装についてはリファレンスガイドを参照)
リファレンスガイド
references/ ディレクトリにある詳細な実装:
| ガイド | 内容 |
|---|---|
JWT 認証 | JWT 認証 |
OAuth 2.0 実装 | OAuth 2.0 実装 |
API キー認証 | API キー認証 |
Python 認証実装 | Python 認証実装 |
ベストプラクティス
✅ すべき こと
- すべての認証に HTTPS を使用する
- トークンを安全に保存する (HttpOnly クッキー)
- トークンリフレッシュメカニズムを実装する
- 適切なトークン有効期限を設定する
- パスワードをハッシュ化してソルトを加える
- 強力なシークレットキーを使用する
- すべてのリクエストでトークンを検証する
- 認証エンドポイントにレート制限を実装する
- 認証試行をログに記録する
- シークレットキーを定期的にローテーションする
❌ してはいけないこと
- パスワードを平文で保存する
- トークンを URL パラメータで送信する
- 弱いシークレットキーを使用する
- 機密データを JWT ペイロードに保存する
- トークン有効期限を無視する
- 本番環境で HTTPS を無効にする
- 機密トークンをログに記録する
- サービス間で API キーを再利用する
- コード内に認証情報を保存する
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aj-geddes
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/aj-geddes/useful-ai-prompts / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。