Аутентификация в Masonite
Masonite делает аутентификацию очень простой.
Создание базовой системы аутентификации
В Masonite есть команда для создания базовой системы аутентификации. Вы можете использовать это как отправную точку для добавления аутентификации в ваше приложение. Эта команда создаст контроллеры, шаблоны и файлы для email.
Если вы хотите внедрить собственную аутентификацию с нуля, вы можете перейти к разделам ниже.
Сначала выполните команду, чтобы создать новые файлы:
Затем добавьте routes
аутентификации в файл маршрутов:
routes/web.py | |
---|---|
Вы можете перейти по url /login
или /register
для реализации вашей аутентификации.
Конфигурация
Конфигурация аутентификации Masonite довольно проста:
config/auth.py | |
---|---|
Вход
Вы можете попытаться войти в систему, используя класс Auth
и метод attempt
:
app/controllers/auth/LoginController.py | |
---|---|
Если попытка увенчается успехом, пользователь будет аутентифицирован и результатом будет модель пользователя.
Если попытка не удалась, результатом будет None
.
Если вы знаете первичный ключ модели, вы можете попробовать найди по id
:
app/controllers/auth/LoginController.py | |
---|---|
Выход:
app/controllers/auth/LoginController.py | |
---|---|
Пользователь
Вы можете получить текущего аутентифицированного пользователя:
app/controllers/auth/LoginController.py | |
---|---|
Если пользователь не аутентифицирован, возвращается None
.
Маршруты
Быстро зарегистрировать несколько маршрутов, используя класс auth
:
routes/web.py | |
---|---|
Это зарегистрирует следующие маршруты:
URI | Описание |
---|---|
GET /login | Отображает форму входа для пользователя |
POST /login | Попытки входа в систему для пользователя |
GET /home | Домашняя страница пользователя после успешной попытки входа в систему |
GET /register | Отображает регистрационную форму для пользователя |
POST /register | Сохранил размещенную информацию и создал нового пользователя |
GET /password_reset | Отображает форму сброса пароля |
POST /password_reset | Попытки сбросить пароль пользователя |
GET /change_password | Отображает форму для запроса нового пароля |
POST /change_password | Запрашивает новый пароль |
Guards
Guards — это инкапсулированная логика для входа в систему, регистрации и получения пользователей.
Guard использует драйвер cookie
, который устанавливает в cookie token
. Который
используется позже для получения пользователя.
Вы можете переключать защиту на лету, чтобы попытаться выполнить аутентификацию на разных защитах: