Como identificar se o token OAuth expirou?

a minha aplicação móvel iOS consome serviços que são implementados com o protocolo OAuth2.0. O token de acesso de OAuth vem junto com um token de atualização e um campo expires_in. Eu salvei o token refresh e acesso token tempo de expiração no meu aplicativo, mas não tenho uma boa idéia sobre quando usá-los.

  • Então, qual é a prática habitual e melhor de usar isto {[[0]}?
  • Como é que identifico que o meu cartão de acesso expirou?
  • existe um formato de erro de serviço web comum que diz O meu o cartão de acesso expirou?
Author: Grokify, 2015-06-14

1 answers

Aqui está a informação sobre a actualização do símbolo de OAuth 2.0.

Expira Na Definição

O padrão de OAuth 2.0, RFC 6749 , define o campo expires_in como o número de segundos para expirar:

Expires_ in: recomendado. A vida útil em segundos da ficha de acesso. Por exemplo, o valor "3600" denota que o token de acesso expirará em uma hora a partir do momento em que a resposta foi gerada. Se omitido, o servidor de autorização deve indique o tempo de expiração através de outros meios ou documente o valor por omissão.

Tratamento Da Actualização Do Item: Método 1

Ao receber um access_token, expires_in value, refresh_token, etc., os clientes podem processar isso armazenando um tempo de expiração e verificando-o em cada pedido. Isto pode ser feito usando os seguintes passos:

  1. converter expires_in para um tempo de expiração (época, RFC-3339/ISO-8601 datetime, etc.)
  2. guardar a hora de expiração
  3. em cada recurso pedido, verifique a hora actual com a hora de expiração e faça um pedido de actualização do item antes do pedido de recursos se o access_token expirou

Ao verificar a hora, certifique-se de que é a mesma hora, por exemplo, usando o mesmo fuso-horário, convertendo todos os tempos para o fuso-horário ou UTC.

Além de receber um novo access_token, você pode receber um novo refresh_token com um tempo de expiração mais adiante no futuro. Se você receber isto, você deve armazenar o novo refresh_token para estender o a vida da tua sessão.

Tratamento Da Actualização Do Item: Método 2

Outro método de lidar com a actualização do item é actualizar manualmente depois de receber um erro do item inválido. Isto pode ser feito com a abordagem anterior ou por si só.

Se tentar usar um access_token expirado e obtiver um erro do item inválido, deverá efectuar uma actualização do item (se o seu item de actualização ainda for válido). Uma vez que diferentes serviços podem usar diferentes códigos de erro para tokens expirados, você pode manter o controle do código para cada serviço ou uma maneira fácil de atualizar tokens através de serviços é simplesmente tentar uma única atualização ao encontrar um erro 4xx.

Erros Do Item De Acesso Inválidos

Abaixo estão alguns códigos de erro dos serviços populares:

  1. Facebook: erro 467 token de acesso inválido - o token de acesso expirou, foi revogado, ou é inválido - Handle tokens de acesso expirado.
  2. LinkedIn: Erro 401 Não autorizado.
  3. Paypal: Erro 401 Não Autorizado.

Actualizar A Expiração Do Item

Se o seu refresh_token também expirou, terá de passar pelo processo de autorização novamente.

 43
Author: Grokify, 2018-03-28 15:28:06