@nfjs/auth-openid
v1.0.1
Published
Authorization by openid module
Downloads
1
Readme
ОГЛАВЛЕНИЕ
Используемые понятия
Клиент
- инстанс класса обёртки над 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
.