Obtenção de um token e verificação do período de validade do token
Cenários
O período de validade de um token é de 24 horas. Depois de obter um token, armazene-o para evitar chamadas frequentes de API. O token original permanecerá válido até expirar, independentemente de um novo token ter sido obtido. Certifique-se de que o token é válido quando você usá-lo. Usar um token que expirará em breve pode causar falhas de chamada de API.
Esta seção descreve como obter um token e verificar seu período de validade para resolver as falhas de chamada da API causadas pela expiração do token.
Se o token estiver prestes a expirar (Não é possível concluir uma chamada de API ou um conjunto de chamadas de API), você precisa obter um novo token para evitar que a chamada seja interrompida devido à expiração do token.
Links Úteis
Obtenção de um token
Você precisa obter um token para autenticação antes de chamar uma API. O valor X-Auth-Token no cabeçalho da solicitação é o valor do token.
O seguinte é um exemplo para mostrar como obter o token da região CN-Hong Kong.
- URI de solicitação: POST https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens
- Cabeçalho da solicitação: Content-Type=application/json
- Solicitar corpo da mensagem:
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "Enter a username", "password": "Enter the password for login.", "domain": { "name": "Enter the account name." } } } }, "scope": { "project": { "name": "Enter a region name. In this example, the region is ap-southeast-1." } } } }
- Para exibir o token obtido, clique no cabeçalho da resposta. O valor de x-subject-token é o token obtido. Mantenha o token seguro porque ele será usado no cabeçalho da solicitação para criar os ECS.
General: Request URL: https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens Request Method: POST Status Code: 201 Response Headers: cache-control: no-cache, no-store, must-revalidate connection: keep-alive content-length: 18401 content-type: application/json; charset=UTF-8 date: Thu, 27 May 2021 01:24:49 GMT expires: Thu, 01 Jan 1970 00:00:00 GMT pragma: no-cache server: api-gateway strict-transport-security: max-age=31536000; includeSubdomains; via: proxy A x-content-type-options: nosniff x-download-options: noopen x-frame-options: SAMEORIGIN x-iam-trace-id: token_ap-southeast-1_null_9bbec3983f3c7a5c146e709251760467 x-request-id: d7796611318416bc8ffb2948a47fede8 x-subject-token: MIISMAYJKoZIhvcNAQ...7xMUw== x-xss-protection: 1; mode=block;
- O valor expires_at no corpo da resposta é o tempo de expiração do token.
{ "token": { "expires_at": "2021-05-28T01:24:49.905000Z", ... } }
Verificando o Período de Validade do Token
Ao fazer uma chamada de API, o sistema verifica se o período de validade do token é longo o suficiente. Se o seu aplicativo tiver armazenado o token em cache, é recomendável que o token seja atualizado a cada 12 horas para garantir que ele tenha um período de validade longo o suficiente.
Você pode consultar o tempo de expiração de um token consultando Verificação de um token.
Segue-se um exemplo para mostrar como verificar o token da região CN-Hong Kong.
- URI de solicitação: GET https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens
- Cabeçalho da solicitação:
- Content-Type=application/json;charset=utf8
- X-Auth-Token: Um token com permissões de Security Administrator é necessário se o administrador estiver solicitando a verificação do token de um usuário do IAM.
O token do usuário (sem requisitos de permissão especiais) de um usuário do IAM é necessário se o usuário estiver solicitando a verificação de seu próprio token.
Este exemplo usa o usuário do IAM e, portanto, o X-Auth-Token é o mesmo que o token a ser verificado
- X-Subject-Token: Token a ser verificado.
- O valor expires_at no corpo da resposta é o tempo de expiração do token.
Se o token estiver prestes a expirar (Não é possível concluir uma chamada de API ou um conjunto de chamadas de API), você precisa obter um novo token para evitar que a chamada seja interrompida devido à expiração do token.
{ "token": { "expires_at": "2021-05-28T01:24:49.905000Z", ... } }