Как правильно использовать API аутентификации Азота?
-
21-09-2019 - |
Вопрос
Просто желая подтвердить использование Азотная аутентификация и авторизация API.Описание API таково:
wf:user() -> User or 'undefined'
Return the user value that was previously set by wf:user(User)
wf:user(User) -> ok
Set the user for the current session.
wf:clear_user() -> ok
Same as wf:user(undefined).
wf:role(Role) -> 'true' or 'false'
Check if the current user has a specified role.
wf:role(Role, IsInRole) -> ok
Set whether the current user is in a specified role.
wf:clear_roles() -> ok
Remove the user from all roles.
Чтобы использовать этот API, я бы сначала проверил логин пользователя в своей базе данных, в которой хранятся учетные данные, затем установил wf: user (Пользователь) для успешно прошедшего проверку подлинности пользователя?Тогда я могу делать такие вещи, как проверить, есть ли undefined = wf:user()
чтобы сообщить, прошел ли пользователь аутентификацию для защиты ограниченных страниц?Аналогично, я бы установил роли для пользователя и т.д., Тогда я мог бы выполнить проверку и для этой роли?И Азот каким-то образом хранит эту информацию в сеансе для меня в фоновом режиме?
Решение
вы правы.Сеансы Nitrogen - это всего лишь процесс erlang, хранящий информацию о сеансе.Использование именно такое, как вы описали.Вы можете запросить, вошел ли пользователь в систему или нет, а также задать роли, которые у него есть, и запросить их.Все более изощренное вам придется сделать самому.