

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# O endpoint de logout do login gerenciado: `/logout`
<a name="logout-endpoint"></a>

O `/logout` é um endpoint de redirecionamento. Ele desconecta o usuário e o redireciona para um URL de saída autorizado para o cliente da aplicação ou o endpoint do `/login`. Os parâmetros disponíveis em uma solicitação GET para o endpoint `/logout` são personalizados para casos de uso de login gerenciado do Amazon Cognito.

O endpoint de desconexão é uma aplicação web de front-end para sessões interativas de usuários com os clientes. A aplicação deve invocar esse e outros endpoints de login gerenciado nos navegadores dos usuários.

Para redirecionar o usuário para o login gerenciado para que ele possa fazer login novamente, adicione um parâmetro `redirect_uri` à solicitação. Uma solicitação `logout` com um parâmetro `redirect_uri` também deve incluir parâmetros para sua solicitação subsequente ao [Endpoint de login](login-endpoint.md), como `client_id`, `response_type` e `scope`.

Para redirecionar seu usuário para uma página que você escolher, adicione Sessão **permitida URLs ao seu cliente de** aplicativo. Nas solicitações dos usuários para o endpoint `logout`, adicione parâmetros `logout_uri` e `client_id`. Se o valor de `logout_uri` for uma das **saídas permitidas URLs para seu cliente de aplicativo, o Amazon Cognito redirecionará os usuários para essa** URL.

Com o logout único (SLO) para SAML 2.0, o Amazon IdPs Cognito primeiro redireciona seu usuário para o endpoint de SLO que você definiu na sua configuração de IdP. Depois que seu IdP redireciona o usuário de volta para `saml2/logout`, o Amazon Cognito responde com mais um redirecionamento para `redirect_uri` ou `logout_uri` de sua solicitação. Para obter mais informações, consulte [Como desconectar usuários do SAML com logout único](cognito-user-pools-saml-idp-sign-out.md).

O endpoint de logout não desconecta os usuários do OIDC ou dos provedores de identidade social (). IdPs Para desconectar os usuários da sessão com um IdP externo, direcione-os para a página de desconexão desse provedor.

## GET /logout
<a name="get-logout"></a>

O endpoint `/logout` só é compatível com `HTTPS GET`. O cliente do grupo de usuários normalmente faz essa solicitação por meio do navegador do sistema. O navegador geralmente é a guia do Chrome personalizada no Android ou no Safari View Control no iOS.

### Parâmetros de solicitação
<a name="get-logout-request-parameters"></a>

*client\$1id*  
O ID do cliente dp aplicativo para o aplicativo. Para obter um ID do cliente da aplicação, é preciso registrar a aplicação no grupo de usuários. Para obter mais informações, consulte [Configurações específicas da aplicação com clientes de aplicação](user-pool-settings-client-apps.md).  
Obrigatório.

*logout\$1uri*  
Redirecione seu usuário para uma página de logout personalizada com um parâmetro *logout\$1uri*. Defina seu valor como o **sign-out URL** (URL de saída) do cliente da aplicação para o qual você deseja redirecionar o usuário depois que ele sair. Use *logout\$1uri* somente com um parâmetro *client\$1id*. Para obter mais informações, consulte [Configurações específicas da aplicação com clientes de aplicação](user-pool-settings-client-apps.md).  
Você também pode usar o parâmetro *logout\$1uri* para redirecionar o usuário para a página de login de outro cliente de aplicação. Defina a página de login para o outro cliente de aplicação como um **Allowed callback URL** (URL de retorno de chamada permitido) em seu cliente de aplicação. Em sua solicitação para o endpoint `/logout`, defina o valor do parâmetro *logout\$1uri* para a página de login codificada em URL.  
O Amazon Cognito requer um parâmetro *logout\$1uri* ou *redirect\$1uri* em sua solicitação para o endpoint `/logout`. O parâmetro *logout\$1uri* redireciona o usuário para outro site. Se os parâmetros *logout\$1uri* e *redirect\$1uri* forem incluídos em sua solicitação para o endpoint `/logout`, o Amazon Cognito utilizará exclusivamente o parâmetro *logout\$1uri*, substituindo o parâmetro *redirect\$1uri*.

*`nonce`*  
(Opcional) Um valor aleatório que você pode adicionar à solicitação. O valor nonce fornecido está incluído no token de ID que o Amazon Cognito emite. Para se proteger contra ataques de repetição, a aplicação pode inspecionar a reivindicação `nonce` no token de ID e compará-la com o que você gerou. Para obter mais informações sobre a solicitação `nonce`, consulte “[ID Token Validation](https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation)” (Validação de tokens de ID) no *OpenID Connect Standard* (Padrão do OpenID Connect).

**redirect\$1uri**  
Redirecione seu usuário para sua página de login a fim de realizar a autenticação com um parâmetro *redirect\$1uri*. Defina seu valor como o **Allowed callback URL** (URL de retorno de chamada permitido) do cliente da aplicação para o qual você deseja redirecionar o usuário depois que ele fizer login novamente. Adicione os parâmetros *client\$1id*, *scope*, *state* e *response\$1type* que você deseja transmitir ao endpoint `/login`.  
O Amazon Cognito requer um parâmetro *logout\$1uri* ou *redirect\$1uri* em sua solicitação para o endpoint `/logout`. Para redirecionar o usuário para o endpoint `/login`, a fim de reautenticar e passar tokens à sua aplicação, adicione um parâmetro *redirect\$1uri*. Se os parâmetros *logout\$1uri* e *redirect\$1uri* forem incluídos em sua solicitação para o endpoint `/logout`, o Amazon Cognito substituirá o parâmetro *redirect\$1uri* e processará o parâmetro *logout\$1uri* exclusivamente.

*response\$1type*  
A resposta OAuth 2.0 que você deseja receber do Amazon Cognito após o login do usuário. `code`e `token` são os valores válidos para o parâmetro *response\$1type*.  
Obrigatório quando você usa um parâmetro *redirect\$1uri*.

*estado*  
Quando sua aplicação adiciona um parâmetro *state* a uma solicitação, o Amazon Cognito retorna o valor para a aplicação quando o endpoint `/oauth2/logout` redireciona o usuário.  
Adicione esse valor às suas solicitações para se proteger contra ataques [CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery).  
Não é possível definir o valor de um parâmetro `state` como uma string JSON codificada por URL. Para transmitir uma string que corresponda a esse formato em um parâmetro `state`, codifique-a como base64 e, depois, decodifique-a em sua aplicação.  
Altamente recomendado se você usar um parâmetro *redirect\$1uri*.

*scope*  
Os escopos OAuth 2.0 que você deseja solicitar do Amazon Cognito depois de desconectá-los com *um* parâmetro redirect\$1uri. O Amazon Cognito redireciona o usuário para o endpoint `/login` com o parâmetro *scope* em sua solicitação ao endpoint `/logout`.  
Opcional se você usar um parâmetro *redirect\$1uri*. Se você não incluir um parâmetro *scope*, o Amazon Cognito redirecionará o usuário para o endpoint `/login` com um parâmetro *scope*. Quando o Amazon Cognito redireciona o usuário e preenche automaticamente `scope`, o parâmetro inclui todos os escopos autorizados para seu cliente de aplicação.

### Exemplo de solicitações
<a name="get-logout-request-sample"></a>

**Exemplo - fazer logout e redirecionar o usuário ao cliente**

O Amazon Cognito redireciona as sessões do usuário para o URL no valor de `logout_uri`, ignorando todos os outros parâmetros da solicitação, quando as solicitações incluem e `logout_uri` e `client_id`. Esse URL deve ser um URL de logoff autorizado para o cliente da aplicação.

Veja a seguir um exemplo de solicitação de logoff e de redirecionamento para `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
```

**Exemplo - fazer logout e solicitar que o usuário faça login como outro usuário**

Quando as solicitações omitem `logout_uri`, mas fornecem os parâmetros que compõem uma solicitação bem formada para o endpoint de autorização, o Amazon Cognito redireciona os usuários para o login do login gerenciado. O endpoint de logout anexa os parâmetros em sua solicitação original ao destino do redirecionamento.

Os parâmetros adicionais que você adiciona à solicitação de logout devem estar na lista em [Parâmetros de solicitação](#get-logout-request-parameters). Por exemplo, o endpoint de logout não é compatível com o redirecionamento automático do IdP com parâmetros `identity_provider` ou `idp_identifier`. O parâmetro `redirect_uri` em uma solicitação para o endpoint de logout não é um URL de logout, mas um post-sign-in URL que você deseja passar para o endpoint de autorização.

Veja a seguir um exemplo de solicitação que faz logout de um usuário, redireciona para a página de login e fornece um código de autorização para `https://www.example.com` depois do login.

```
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
```