コンテンツにスキップ

ログアウト

メソッド

RESTメソッドを採用しています。

HTTPメソッド

POST: ユーザーログアウト

命名規則

クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時のURIとJSON内のノードにはsnake_caseを使用します。

リクエストとレスポンス

ヘッダー

メタ情報はレスポンスボディではなく、HTTPヘッダーに設定されます。

リクエストヘッダー

  • Authorization
  • Content-Type
  • Accept
  • Accept-language

レスポンスヘッダー

  • Content-Type

ログアウト

URI

POST /v1/auth/logout

リクエストボディ

リクエストボディは不要です。

レスポンス

レスポンスはJSONです。

{
  "message": "Successfully logged out"
}

レスポンスフィールド

名前 型 説明
message string 成功メッセージ

認証

認証はAmazon Cognitoから発行されるJSON Web Tokens (JWT)を使用して行われます。

Bearerトークンが必要です:

Authorization: Bearer <access_token>

例外処理

例外処理のステータスコードは以下の通りです。

説明 ステータスコード ステータス名
トークンがないか無効 401 Unauthorized
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. AuthorizationヘッダーからBearerトークンを抽出
  2. トークンからユーザー情報を抽出(ミドルウェア経由)
  3. AWS Cognitoでセッションを無効化
  4. 成功メッセージを返す

詳細フローチャート

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でセッションを無効化(トークンは使用不可になります)