[Carol] UI deve utilizar refresh_token quando o authorization expirar
Description
01 - STAKEHOLDER (quem valida e esclarece):
@Robson Thanael Poffo @MARCOS STUMPF
02 - PROBLEMA (cenário e/ou dor):
Estamos com logouts frequentes, gerando a necessidade de informar o 2FA frequentemente por usuários
03 - OBJETIVO (solução proposta):
FE deve, ao constatar que o token expirou, utilizar o refresh_token para gerar um novo Authorization e um novo refresh_token.
Endpoint:
curl -X 'POST' \'https://poffo.carol.ai/api/v3/oauth2/token' \-H 'accept: application/json' \-H 'Content-Type: application/x-www-form-urlencoded' \-H 'Authorization: Bearer TOKEN' \-d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'
Retorno:
{"access_token": "NOVO_TOKEN","client_id": "2552811ce1b8b801823184b935a6c4bf","expires_in": 3599,"mfa_enabled": false,"mfa_token": "","refresh_token": "NOVO_REFRESH","state": "","timeIssuedInMillis": 1764125836173,"token_type": "bearer"}
04 - QUEM PODE USAR (perfis de usuários):
Usuários em geral
05 - ASSETS (links e arquivos relevantes):
Não necessário.
06 - CRITÉRIOS DE ACEITE:
-
Adequar a criação do access e refresh tokens ao OAuth2.0 V5
-
BE já possui Refresh Token implementado
-
Garantir a manutenção da sessão após atingir a expiração de 1 hora do access token, por meio da obtenção de um novo access token e refresh token.
-
Propor como o time do clockin deve trabalhar com o token de autenticação:
-
Eu observei que eles utilizam o mesmo local storage.
-
Alguma pratica para que quando a Carol renove o token evite que o Backoffice perca o sincronismo?
-
Eles podem manter o contexto do app do Backoffice sincronizado automaticamente com o localstorage para manter a integração entre ambos os apps?
-
-
Fluxo validado:
-
Duas sessões Carol não interferem uma na outra.
-
Quando a mesma tenant é aberta em browsers diferentes um não impacta no outro (tokens diferentes, refresh token diferente).
-
Ao fazer o refresh token em uma sessão, não afeta a outra sessão.
-