Регистрация
Backend
В предыдущей лабораторной работе регистрация и авторизация реализовывались с помощью JWT. Для создания нового пользователя необходимо послать запрос формата
на эндпоинт /auth/users/
. В качестве ответа мы получаем либо refresh- и access-токены, либо сообщение о
некорректно введённых полях. Пример исключения:
Frontend
Логика получения токенов как результат соответствующего запроса реализована в stores/auth.store.js
: сервис
получает access и refresh токены, хранит их локально и прикрепляет access-токен к запросам.
Интерфейс реализован с помощью фреймворка Vue.js
и библиотеки vuetify
. Ниже приведена структура компонента
регистрации RegisterComponent.vue
Скрипт:
- Импорты:
ref
из Vue.js для реактивности.fetchWrapper
для HTTP-запросов.-
useAuthStore
для управления состоянием аутентификации. -
Переменные:
email
,username
,password
,confirmPassword
для хранения данных формы.-
valid
для валидации формы. -
Правила Валидации:
-
emailRules
,usernameRules
,passwordRules
,confirmPasswordRules
для валидации данных формы. -
Функция
submit
: - Отправляет запрос на регистрацию и обрабатывает ответ.
Разметка:
- Использует Vuetify компоненты (
v-container
,v-row
,v-col
,v-card
и др.) для создания формы регистрации. - Включает текстовые поля для ввода данных пользователя.
- Кнопки для отправки формы и перехода на страницу входа.
Логика Работы:
- Ввод данных: Пользователь вводит данные в поля формы.
- Валидация: Автоматическая проверка корректности данных.
- Отправка данных: По нажатию кнопки "Register", данные отправляются на сервер.
- Обработка ответа: В случае успешной регистрации, происходит вход пользователя в систему.
Стилизация компонента выполняется с использованием Vuetify и локальных стилей (раздел <style scoped>
).
Пример работы
Если прощёлкать поля, пользователь увидит следующее:
Пример валидации данных:
Пример валидации пароля на сервере:
Если же с данными всё хорошо, происходит регистрация нового пользователя (ниже — скрин из админ-панели Django):