ログアウト
メソッド
RESTメソッドを採用しています。
HTTPメソッド
POST: ユーザーログアウト
命名規則
クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時のURIとJSON内のノードにはsnake_caseを使用します。
リクエストとレスポンス
ヘッダー
メタ情報はレスポンスボディではなく、HTTPヘッダーに設定されます。
リクエストヘッダー
AuthorizationContent-TypeAcceptAccept-language
レスポンスヘッダー
Content-Type
ログアウト
URI
リクエストボディ
リクエストボディは不要です。
レスポンス
レスポンスはJSONです。
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
| message | string | 成功メッセージ |
認証
認証はAmazon Cognitoから発行されるJSON Web Tokens (JWT)を使用して行われます。
Bearerトークンが必要です:
例外処理
例外処理のステータスコードは以下の通りです。
| 説明 | ステータスコード | ステータス名 |
|---|---|---|
| トークンがないか無効 | 401 | Unauthorized |
| 内部サーバーエラー | 500 | Internal Server Error |
処理フロー
- AuthorizationヘッダーからBearerトークンを抽出
- トークンからユーザー情報を抽出(ミドルウェア経由)
- AWS Cognitoでセッションを無効化
- 成功メッセージを返す
詳細フローチャート
flowchart TD
Start([POST /v1/auth/logout]) --> Middleware[protectedRoute<br/>ミドルウェア]
Middleware --> ValidateToken[JWTトークン検証]
ValidateToken --> TokenValid{有効?}
TokenValid -->|NG| Err401[401 Unauthorized]
TokenValid -->|OK| ExtractUser[ユーザー情報抽出<br/>Cognito sub]
ExtractUser --> Route[Route Handler]
Route --> Service[Service Layer]
Service --> CognitoLogout[AWS Cognito<br/>グローバルサインアウト]
CognitoLogout --> LogoutOK{成功?}
LogoutOK -->|NG| Err500[500 Internal Error]
LogoutOK -->|OK| Success[200 OK<br/>Successfully logged out]
セキュリティ
- トークンの検証:
protectedRouteミドルウェア - Cognitoでセッションを無効化(トークンは使用不可になります)