本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
注销端点
/logout
端点是重定向端点。它会注销用户并重定向到您的应用程序客户端URL的授权注销或终端节点。/login
/logout
终端节点GET请求中的可用参数是针对 Amazon Cognito 托管的用户界面用例量身定制的。
要将用户重定向到托管 UI 以再次登录,请在请求中添加 redirect_uri
参数。带 redirect_uri
参数的 logout
请求还必须包含对登录端点的后续请求的参数,例如 client_id
、response_type
和 scope
。
注销端点是一个前端 Web 应用程序,用于与客户进行交互式用户会话。您的应用程序必须在用户的浏览器中调用此端点和其他托管 UI 端点。
要将用户重定向到您选择的页面,请在您的应用程序客户端中URLs添加允许注销。在用户的对 logout
端点的请求中,添加 logout_uri
和 client_id
参数。如果的值logout_uri
是您的应用程序客户端允许的注销URLs之一,则 Amazon Cognito 会将用户重定向到该值。URL
使用 SAML 2.0 的单点注销 (SLO) IdPs,Amazon Cognito 首先将您的用户重定向到您在 IdP 配置中定义SLO的终端节点。在您的 IdP 将您的用户重定向回之后,Amazon saml2/logout
Cognito 会再重定向到您的请求或来自您的请求。redirect_uri
logout_uri
有关更多信息,请参阅 SAML注销流程。
注销端点不会让用户退出社交身份提供者 (IdPs)。OIDC要让用户退出与外部 IdP 的会话,请将他们引导到该提供商的注销页面。
GET/注销
/logout
端点只支持 HTTPS GET
。用户池客户端通常通过浏览器发出此请求。浏览器在 Android 中通常是自定义 Chrome 标签页,在 iOS 中是 Safari 视图控件。
请求参数
- client_id
-
您的应用程序的应用程序客户端 ID。要获取应用程序客户端 ID,您必须在用户池中注册该应用程序。有关更多信息,请参阅 用户池应用程序客户端。
必需。
- logout_uri
-
使用 logout_uri 参数将用户重新导向到自定义注销页面。将其值设置为要URL在用户注销后将其重定向到的应用程序客户端注销。仅将 logout_uri 与 client_id 参数一起使用。有关更多信息,请参阅 用户池应用程序客户端。
您也可以使用 logout_uri 参数将用户重定向到另一个应用程序客户端的登录页面。在您的应用程序客户端中将其他应用程序客户端的登录页面设置为允许URL的回调。在向
/logout
终端节点发出的请求中,将 logout_uri 参数的值设置为 URL-编码的登录页面。Amazon Cognito 要求在您对
/logout
端点的请求中使用 logout_uri 或 redirect_uri 参数。logout_uri 参数会将您的用户重定向到另一个网站。如果您对/logout
端点的请求中同时包含 logout_uri 和 redirect_uri 参数,Amazon Cognito 将仅使用 logout_uri 参数,不使用 redirect_uri 参数。 - redirect_uri
-
使用 redirect_uri 将用户重新导向到登录页以进行身份验证。将其值设置为应用程序客户端 “允许” 回调,您希望URL在用户再次登录后将其重定向到该回调。添加您要传递给
/login
端点的 client_id、scope、state 和 response_type 参数。Amazon Cognito 要求在您对
/logout
端点的请求中使用 logout_uri 或 redirect_uri 参数。要将您的用户重定向到您的/login
终端节点以重新进行身份验证并将令牌传递给您的应用程序,请添加 red irect _uri 参数。如果您的终端节点请求中同时包含 logout_uri 和 redirect_uri 参数,则/logout
Amazon Cognito 会覆盖 redirect_uri 参数并专门处理 logout_uri 参数。 - response_type
-
您希望在用户登录后从 Amazon Cognito 收到的 OAuth 2.0 响应。
code
和token
是 r esponse_t ype 参数的有效值。在您使用 redirect_uri 参数时是必需的。
- state
-
当您的应用程序向请求添加状态参数时,当
/oauth2/logout
终端节点重定向您的用户时,Amazon Cognito 会将其值返回给您的应用程序。将此值添加到您的请求中以防范攻CSRF
击。 您不能将
state
参数的值设置为 URL-编码JSON的字符串。要在state
参数中传递与此格式匹配的字符串,请将该字符串编码为 base64,然后在应用程序中对其进行解码。如果您使用 redirect_uri 参数,强烈推荐使用此参数。
- 范围
-
你想在使用 redi re ct_uri 参数注销后向亚马逊 Cognito 请求的 OAuth 2.0 范围。Amazon Cognito 使用您对
/logout
端点的请求中的 scope 参数将您的用户重定向到/login
端点。在您使用 redirect_uri 参数时是可选的。如果不包括 scope 参数,Amazon Cognito 会使用 scope 参数将您的用户重定向到
/login
端点。当 Amazon Cognito 重定向用户并自动填充scope
时,该参数包括应用程序客户端的所有授权范围。
请求示例
示例-注销并将用户重定向到客户端
除logout_uri
和之外client_id
,此端点的所有可能的查询参数都将传递到对端点授权。当请求包含和时,Amazon Cognito 会将用户会话重定向到的值logout_uri
,忽略所有其他请求参数。URL logout_uri
client_id
这URL必须是应用程序客户端URL的授权注销。
以下是注销并重定向到 https://www.example.com/welcome
的请求示例。
GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? client_id=1example23456789& logout_uri=https%3A%2F%2Fwww.example.com%2Fwelcome
示例-注销并提示用户以其他用户身份登录
如果请求忽略 logout_uri
,但以其他方式提供了参数,可以构成对授权端点发出的、格式正确的请求,Amazon Cognito 会将用户重定向到托管 UI 登录。注销端点会将原始请求中的参数附加到重定向目的地。向注销终端节点发出的请求redirect_uri
中的参数不是注销URL,而是您要传递到授权端点的登录URL。
以下是用户注销、重定向到登录页面并在登录https://www.example.com
后向其提供授权码的请求示例。
GET https://mydomain.auth.us-east-1.amazoncognito.com/logout? response_type=code& client_id=1example23456789& redirect_uri=https%3A%2F%2Fwww.example.com& state=example-state-value& nonce=example-nonce-value& scope=openid+profile+aws.cognito.signin.user.admin