Logout 엔드포인트 - Amazon Cognito

Logout 엔드포인트

/logout 엔드포인트는 사용자를 로그아웃하고 앱 클라이언트의 권한 부여된 로그아웃 URL 또는/login 엔드포인트로 리디렉션합니다.

GET /logout

/logout 엔드포인트는 HTTPS GET만 지원합니다. 사용자 풀 클라이언트는 일반적으로 시스템 브라우저를 통해 이 요청을 수행합니다. 브라우저는 일반적으로 Android의 Custom Chrome Tab 또는 iOS의 Safari View Control입니다.

요청 파라미터

client_id

앱에 대한 앱 클라이언트 ID입니다. 앱 클라이언트 ID를 얻으려면 해당 앱을 사용자 풀에 등록해야 합니다. 자세한 내용은 사용자 풀 앱 클라이언트 구성 섹션을 참조하세요.

필수.

logout_uri

logout_uri 파라미터가 있는 사용자 지정 로그아웃 페이지로 사용자를 리디렉션합니다. 로그아웃한 사용자를 리디렉션하려는 앱 클라이언트 로그아웃 URL로 값을 설정합니다. logout_uriclient_id 파라미터와 함께만 사용합니다. 자세한 내용은 사용자 풀 앱 클라이언트 구성 섹션을 참조하세요.

logout_uri 파라미터를 사용하여 사용자를 다른 앱 클라이언트의 로그인 페이지로 리디렉션할 수도 있습니다. 다른 앱 클라이언트의 로그인 페이지를 앱 클라이언트의 허용된 콜백 URL로 설정합니다. /logout 엔드포인트에 대한 요청에서 logout_uri 파라미터의 값을 URL 인코딩된 로그인 페이지로 설정합니다.

Amazon Cognito에서는 /logout 엔드포인트를 요청할 때 logout_uri 또는 redirect_uri 파라미터가 필요합니다. logout_uri 파라미터는 사용자를 다른 웹 사이트로 리디렉션합니다.

redirect_uri

사용자를 로그인 페이지로 리디렉션하여 redirect_uri 파라미터를 사용하여 인증합니다. 다시 로그인한 사용자를 리디렉션하려는 앱 클라이언트 허용된 콜백 URL로 값을 설정합니다. /login 엔드포인트에 전달하려는 client_id, scope, state, response_type 파라미터를 추가합니다.

Amazon Cognito에서는 /logout 엔드포인트를 요청할 때 logout_uri 또는 redirect_uri 파라미터가 필요합니다. 사용자를 /login 엔드포인트로 리디렉션하여 토큰을 다시 인증하고 앱에 전달하려면 redirect_uri 파라미터를 추가합니다.

response_type

사용자가 로그인한 후 Amazon Cognito로부터 수신할 OAuth 2.0 응답입니다. codetokenresponse_type 파라미터에 대한 유효한 값입니다.

redirect_uri 파라미터를 사용하는 경우 필수입니다.

state

앱이 요청에 state 파라미터를 추가하면 /oauth2/logout 엔드포인트가 사용자를 리디렉션할 때 Amazon Cognito가 해당 값을 앱으로 반환합니다.

이 값을 요청에 추가하여 CSRF 공격으로부터 보호할 수 있습니다.

state 파라미터의 값을 URL 인코딩 JSON 문자열로 설정할 수 없습니다. state 파라미터에서 이 형식과 일치하는 문자열을 전달하려면 문자열을 Base64로 인코딩한 다음 앱에서 디코딩하면 됩니다.

redirect_uri 파라미터를 사용하는 경우 적극 권장됩니다.

scope

redirect_uri 파라미터를 사용하여 로그아웃한 후 Amazon Cognito로부터 요청할 OAuth 2.0 범위입니다. Amazon Cognito가 /logout 엔드포인트에 대한 요청에 scope 파라미터를 사용하여 사용자를 /login 엔드포인트로 리디렉션합니다.

redirect_uri 파라미터를 사용하는 경우에 선택 사항입니다. scope 파라미터를 포함하지 않는 경우 Amazon Cognito가 scope 파라미터를 사용하여 사용자를 /login 엔드포인트로 리디렉션합니다. Amazon Cognito가 사용자를 리디렉션하고 scope를 자동으로 채우는 경우 이 파라미터에 앱 클라이언트의 권한 부여된 모든 범위가 포함됩니다.

샘플 요청

예 1: 로그아웃하고 클라이언트로 리디렉션

이 예에서는 기존 세션을 지우고 사용자를 클라이언트로 리디렉션합니다. logout_uri 파라미터를 사용하는 이와 같은 요청의 예에서도 client_id 파라미터가 필요합니다.

GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? client_id=ad398u21ijw3s9w3939& logout_uri=https://myclient/logout

예 2: 로그아웃하고 사용자에게 다른 사용자로 로그인하라는 메시지 표시

이 예에서는 기존 세션을 지우고 로그인 화면을 표시합니다. 이 예에서는 권한 부여 엔드포인트 요청에서 사용하는 것과 동일한 파라미터를 사용합니다.

GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? response_type=code& client_id=ad398u21ijw3s9w3939& redirect_uri=https://YOUR_APP/redirect_uri& state=STATE& scope=openid+profile+aws.cognito.signin.user.admin