Os tokens de acesso do OAuth2 para um aplicativo para dispositivos móveis precisam expirar?
A resposta aceita aqui quanto aopor que os tokens de acesso do OAuth2 expiram:
Muitos provedores suportam tokens de portador que são muito fracos em termos de segurança. Ao torná-los de curta duração e exigindo atualização, eles limitam o tempo que um invasor pode abusar de um token roubado. (O que isto significa? Eu tomo isso para significar permitir transmissão sem TLS? Algo mais?).A implantação em grande escala não deseja realizar uma pesquisa de banco de dados a cada chamada de API, portanto, emitam um token de acesso auto-codificado que pode ser verificado por descriptografia. No entanto, isso também significa que não há como revogar esses tokens, por isso eles são emitidos por um curto período de tempo e devem ser atualizados.O token de atualização requer autenticação de cliente, o que o torna mais forte. Ao contrário dos tokens de acesso acima, ele geralmente é implementado com uma pesquisa de banco de dados.Assumir que não suportamos a transmissão não criptografada do token de acesso cuida do primeiro ponto de marcador.
Supondo que estamos bem em fazer uma pesquisa de banco de dados contra um token de acesso completamente aleatório, revogável, cuida do segundo.
Para aplicativos móveis, a autenticação do cliente não pode ser mais forte, porque "o client_id e client_secret obtidos durante o registro são incorporados no código-fonte do seu aplicativo. Nesse contexto, o client_secret obviamente não é tratado como um segredo." (Google). Isso elimina a terceira preocupação.
Então, qual é o benefício de separar tokens de acesso de vida curta e tokens de atualização de vida longa neste cenário? É "ok" apenas emitir tokens de acesso não expirados e ignorar toda a parte do token de atualização?