Skip to content

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

@dyakovri

Description

@dyakovri

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

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

  • access_token с временем жизни минут 15
  • refresh_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

Metadata

Metadata

Labels

good first issue 👶Задача подходит для новичковnew feature 🆕Новая фича или запрос на нее

Type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions