1.0.1 • Published 1 year ago

@nfjs/auth-openid v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

ОГЛАВЛЕНИЕ

Используемые понятия

Клиент - инстанс класса обёртки над openid-client.

Принцип работы

Является оберткой над пакетом openid-client. Позволяет сконфигурировать экземпляр для аутентификации пользователя (встроиться в общий механизм @nf/auth) и получить роли для приложения. Осуществляется это с помощью следующих шагов:

  • на основной форме desktop.frm выполняется запрос на подмененный роут веб сервера /front/action/check-auth, для проверки авторизованности в приложении
  • при получении информации от веб сервера, что не пользователь не авторизован и вместе с этим приходит адрес, на который нужно перенаправиться для аутентификации
  • ожидается ответный вызов на адресе /openid/callback с состоянием не равным logout
  • достается информация о пользователе из токенов, отдельно выиискиваются его роли(_roles), уникальное(_username) и полное(_fullname) имя, и складывается в сессию пользователя(openid-userinfo) на веб сервере вместе с токенами
  • выполняются хуки, помеченные как "до авторизации"
  • выполняются хуки, помеченные как "авторизация" (обычно это сохранение информации о пользователе в постоянное хранилище). Если они успешно прошли, считается что пользователь полностью авторизован в приложении
  • выполняются хуки, помеченные как "после авторизации"
  • происходит перенаправление на адрес / и форма desktop.frm уже показывает оснвную форму (main.frm) приложения.

В последующих запросах к веб серверу, на роуте в котором указана auth middleware юудет проверятся время жизни access токена и пытается обновиться по истечении.

Конфигурация

Описание в package.config.json В блоке client можно указывать все опции для оригинального класса Client пакета openid-client.

1.0.1

1 year ago