Создание функционала регистрации пользователя с проверкой электронной почты с помощью Java и Spring Boot
Сегодня, в этой статье, вы узнаете, как создать полноценную систему регистрации с проверкой электронной почты, используя язык программирования Java, фреймворк Spring Boot и MySQL в качестве базы данных. Ссылка на полный код будет доступна в конце.
Список необходимых инструментов:
1. Создание проекта
Создайте шаблон проекта и добавьте зависимости из spring initializr
- Выберите проект Maven и ЯП Java.
- Дайте название своему проекту.
- Добавьте зависимости для SpringWeb, драйвера MySQL и Spring Data JPA, Spring Security и Java Mail Sender. Они будут добавлены в pom.xml файл внутри папки вашего проекта.
- Нажмите на кнопку GENERATE.
- Zip-файл проекта будет загружен, теперь распакуйте вашу папку.
2. Создание базы данных MySQL
- Откройте MySQL workbench или войдите в систему с терминала.
- Создайте новую схему “demo_register”.
3. Активация службы SMTP
- Откройте раздел Manage вашего сайта через учётную запись вашего Gmail.
- Перейдите во вкладку Security и убедитесь, что включена двухфакторная аутентификация.
- Затем создайте App password, выберите Other, и дайте ему имя.
- Будет показан пароль, убедитесь, что вы скопировали и сохранили его для дальнейшего использования.
4. Настройка конфигурации
- Откройте распакованный файл в вашей любимой среде разработки.
- Откройте файл src/main/resources/applications.properties.
- Добавьте конфигурацию базы данных и электронной почты в файл application.properties.
- Измените имя пользователя и пароль в соответствии с вашей базой данных.
- В разделе Свойства электронной почты введите свой Gmail в поле имя пользователя и пароль, который вы скопировали до этого.
5. Создание User Entity (пользовательской сущности)
Сущности — это объекты, содержащиеся в Master Data Services моделях. Каждая сущность содержит элементы, которые являются строками основных данных, которыми можно управлять.
- Создайте сущность.
- Добавьте класс Java в пакет сущностей, имя User.java и аннотируйте с помощью Entity annotation.
- Добавьте идентификатор и другие необходимые поля в класс пользователя.
- Щёлкните правой кнопкой мыши -> Сгенерировать -> Средство получения и настройки -> выберите все переменные; для создания методов получения и настройки.
- Сгенерируйте конструктор всех аргументов и конструктор без аргументов.
- Аналогичным образом создайте ConfirmationToken.сущность java.
- Обратитесь к приведенному ниже коду для получения необходимых элементов данных.
ВНИМАНИЕ: Мы будем использовать библиотеку javax.persistence.* для сущностей, идентификаторов и других аннотаций. Как только вы добавите приведенный ниже код, Spring попросит вас добавить jar-файл. Итак, наведите курсор на аннотацию объекта и добавьте jar-файл для javax. Если вы столкнётесь с какими-либо трудностями, то непосредственно добавьте зависимость к pom.xml файлу.
6. Создание репозитория JPA
JPA расшифровывается как Java Persistence API (интерфейс прикладного программирования). JPA - это спецификация, которая определяет, как получать доступ, управлять и сохранять информацию / данные между объектами java и реляционными базами данных.
- Создайте новый репозиторий.
- Добавьте Java-интерфейс в пакет репозитория с именем UserRepository и прокомментируйте его аннотацией репозитория.
- Расширьте свой репозиторий с помощью репозитория JPA.
- Аналогичным образом создайте репозиторий для ConfirmationToken.
7. Создание класса Service
Сервисный уровень - это уровень в приложении, который облегчает связь между контроллером и уровнем сохраняемости/сущности. Кроме того, бизнес-логика хранится на уровне сервиса.
- Создайте класс Service.
- Добавьте EmailService.java, запишите в него файл и добавьте приведённый ниже код. Эта услуга отправит письмо на почту получателю.
- Добавьте интерфейс Java в пакет услуг с именем UserService.
- Добавьте в него определения следующих функций и реализуйте эти функции в UserServiceImpl
8. Создание контроллера
Метод контроллера начинает обрабатывать веб-запрос, взаимодействуя с service layer.
- Создайте контроллер.
- Добавьте класс Java в пакет контроллера с именем UserController.
- Здесь мы используем все наши Rest API и вызываем необходимые функции.
- Добавьте следующий код:
Окончательная иерархия проекта
9. Тестирование API в Postman
- Проверьте текущее значение активации в базе данных. В настоящее время пользователь не активен.
- Проверьте наличие ссылки в вашем электронном письме.
- Нажмите на ссылку и откройте её в своём браузере
- Проверьте свою базу данных еще раз
Мы можем увидеть, что, как только электронная почта пользователя подтверждена, пользователь становится активным в нашей базе данных. Вот и всё, вы - молодец, ведь дошли до конца. Если у вас есть какие-либо вопросы, задавайте их в комментариях ниже. Я с радостью отвечу на них!
Статья взята из следующего источника: