profcomff / webapp-ui

Твой ФФ! v3.0
https://app.profcomff.com
BSD 3-Clause "New" or "Revised" License
16 stars 1 forks source link

Поддержать обновление токена с включенным OIDC #313

Open dyakovri opened 1 week ago

dyakovri commented 1 week ago

Когда включен OIDC в Auth API (сейчас включен на тесте) – токен не продлевается автоматически. Его надо продлевать вручную с помощью ручки /openid/token.

По идее токена должно выписываться два:

С access_token так же приходит expires_in (в секундах, а в старых ручках expires в виде даты). Токен надо обновлять не реже, чем пройдет это время.

Вариант решения:

  1. При открытии вкладки с приложением всегда делаем запрос на /openid/token (если пользователь уже логинился, у него должны быть сохранены refresh_token или token) для замены токена с параметрами ?grant_type=refresh_token& client_id=app&refresh_token={{token}}. {{token}} заменять на refresh_token, а если его нет, то на token

  2. Из полученного JSON запоминать параметры token=access_token, refresh_token=refresh_token

    Из старых ручек запоминать token=access_token or token, refresh_token=refresh_token or token. Но вообще потом там тоже будут оба токена приходить

    expires/expires_in тоже запоминать в формате даты/юникс таймстемпа

  3. Если делаешь API запрос, предварительно проверить, что expires < сейчас. Если такое произошло, сначала делаем шаг 1

Я бы это делал на уровне auth-lib

dyakovri commented 1 week ago

Илюх, тебя ассайнул, может ты доберешься раньше меня

Вообще это не горит. На прод оно в любом случае выедет выключенным

dyakovri commented 1 week ago

Related to https://github.com/profcomff/auth-api/pull/232