В этой статье блога мы рассмотрим, как интегрировать пул пользователей AWS Cognito с приложением Angular, чтобы упростить аутентификацию пользователей. Пул пользователей AWS Cognito предоставляет масштабируемое и безопасное решение для управления регистрацией пользователей, входом в систему и данными профилей пользователей. Мы рассмотрим различные методы и примеры кода, чтобы продемонстрировать процесс интеграции.
-
Настройка пула пользователей AWS Cognito.
Для начала создайте новый пул пользователей AWS Cognito в Консоли управления AWS. Настройте необходимые параметры, такие как атрибуты пользователя, политики паролей и проверка электронной почты. После настройки пула пользователей вы получите необходимые сведения о конфигурации, такие как идентификатор пула пользователей и идентификатор клиента приложения. -
Установка AWS Amplify:
Для взаимодействия с пулом пользователей AWS Cognito в приложении Angular вы можете использовать библиотеку AWS Amplify. Установите Amplify, выполнив следующую команду в каталоге вашего проекта:npm install aws-amplify @aws-amplify/ui-angular -
Настройка AWS Amplify.
В своем приложении Angular настройте Amplify, импортировав и вызвав классAmplifyиз пакетаaws-amplify. Укажите сведения о конфигурации пула пользователей AWS Cognito:import Amplify from 'aws-amplify'; import awsconfig from './aws-exports'; Amplify.configure(awsconfig);Убедитесь, что в вашем проекте Angular есть файл
aws-exports.js, который содержит необходимые параметры конфигурации. -
Формы регистрации и входа.
Реализуйте формы регистрации и входа пользователей в свое приложение Angular с помощью реактивных форм Angular или форм на основе шаблонов. Используйте компоненты Amplify для упрощения процесса аутентификации:<amplify-auth-sign-up></amplify-auth-sign-up> <amplify-auth-sign-in></amplify-auth-sign-in> -
Обработка событий аутентификации.
Чтобы обрабатывать события аутентификации, такие как успешный вход или регистрация, вы можете подписаться на наблюдаемуюauthState, предоставляемую Amplify. Это позволяет выполнять определенные действия в зависимости от статуса аутентификации пользователя:import { Auth } from 'aws-amplify'; Auth.currentAuthenticatedUser().then(user => { // User is signed in }).catch(() => { // User is not signed in }); -
Безопасная маршрутизация и защита:
Защитите свои маршруты Angular, внедрив защиту маршрутов. СоздайтеAuthGuard, который проверяет, прошел ли пользователь аутентификацию, прежде чем разрешить доступ к защищенным маршрутам. Вот примерAuthGuardс использованием Amplify:import { CanActivate, Router } from '@angular/router'; import { Auth } from 'aws-amplify'; @Injectable({ providedIn: 'root' }) export class AuthGuard implements CanActivate { constructor(private router: Router) {} canActivate(): Promise<boolean> { return Auth.currentAuthenticatedUser() .then(() => true) .catch(() => { this.router.navigate(['/signin']); return false; }); } }
Интеграция пула пользователей AWS Cognito с Angular упрощает процесс аутентификации пользователей в ваших веб-приложениях. Следуя методам и примерам кода, представленным в этой статье, вы можете быстро реализовать регистрацию пользователей, вход в систему и обработку аутентификации в своем приложении Angular. Пул пользователей AWS Cognito предлагает безопасное и масштабируемое решение, позволяющее вам сосредоточиться на создании комфортного пользовательского опыта.