Добавьте полный поток аутентификации в ваше приложение React

Что такое AWS Amplify?

AWS Amplify был анонсирован в ноябре 2017 года как библиотека с открытым исходным кодом для разработчиков, которые хотят создавать облачные приложения с помощью JavaScript в Интернете или на мобильных платформах.

Вы когда-нибудь слышали о Firebase от Google? Это очень похожая концепция, но работает в AWS.

AWS Amplify позволяет невероятно быстро создавать приложения, используя услуги, предоставляемые Amazon, без управления какой-либо инфраструктурой.

AWS Amplify - это платформа разработки для создания безопасных масштабируемых мобильных и веб-приложений.

Amplify предоставляет набор функций, таких как аутентификация, аналитика, API (GraphQL и REST), взаимодействия, прогнозы, PubSub, хранилище, push-уведомления и XR, которые позволяют создавать многофункциональные бессерверные приложения на базе сервисов AWS.

Amplify охватывает весь рабочий процесс разработки мобильных приложений от контроля версий и тестирования кода до производственного развертывания и легко масштабируется вместе с вашим бизнесом от тысяч пользователей до десятков миллионов.

Библиотеки Amplify и интерфейс командной строки, часть платформы Amplify, имеют открытый исходный код и предлагают подключаемый интерфейс, который позволяет настраивать и создавать свои собственные подключаемые модули.

Звучит здорово, давайте посмотрим, как это работает!

В этом первом посте об AWS Amplify я расскажу о процессе установки, настройки Amplify и создания приложения React с полной аутентификацией за простые шаги.

Базовая настройка

Во-первых, если у вас еще нет Node, скачайте и установите его.



Вам также понадобится учетная запись AWS для запуска Amplify. Создайте учетную запись AWS, если у вас ее еще нет.



Усилить

Теперь, когда основная настройка завершена, приступим.

Установите Amplify CLI

Интерфейс командной строки Amplify (CLI) - это унифицированный набор инструментов для создания, интеграции и управления облачными сервисами AWS для вашего приложения.

$ sudo npm install -g @aws-amplify/cli

Настроить Amplify

Войдите в свою учетную запись AWS и запустите:

$ amplify configure

Нажмите Enter, укажите регион AWS, имя пользователя и еще раз Enter.

amplify configure
Scanning for plugins...
Plugin scan successful
Follow these steps to set up access to your AWS account:
Sign in to your AWS administrator account:
https://console.aws.amazon.com/
Press Enter to continue
Specify the AWS Region
? region:  eu-west-2
Specify the username of the new IAM user:
? user name:  amplify-7T7mt
Complete the user creation using the AWS console
https://console.aws.amazon.com/iam/home?region=undefined#/users$new?step=final&accessKey&userNames=amplify-7T7mt&permissionType=policies&policies=arn:aws:iam::aws:policy%2FAdministratorAccess
Press Enter to continue

Завершите создание пользователя AWS Amplify, загрузите учетные данные и добавьте оставшуюся информацию в терминал:

Вы завершили настройку Amplify, теперь давайте создадим наше приложение.

Приложение React

Создайте свое приложение React с помощью create-response-app:

$ npx create-react-app react-amplify
$ cd react-amplify

Теперь давайте инициализируем наше приложение , выполнив следующую команду:

$ amplify init

Эта команда инициализирует нашу конфигурацию AWS и создаст файл конфигурации в корне нашего приложения.

Сделайте выбор ниже или в соответствии с вашей конфигурацией:

Некоторые следующие шаги:

  • amplify status: покажет, что вы уже добавили, и настроено ли это локально или развернуто.
  • amplify <category> add: позволит вам добавлять такие функции, как вход пользователя в систему или внутренний API.
  • amplify push: создаст все ваши локальные внутренние ресурсы и предоставит их в облаке.
  • amplify console: Откройте консоль Amplify и просмотрите статус вашего проекта.
  • amplify publish: Создайте все свои локальные внутренние и внешние ресурсы (если у вас есть добавленная категория хостинга) и подготовьте их в облаке.

Настройте свое приложение React

Давайте установим пакеты AWS Amplify в наше приложение React:

$ sudo npm install aws-amplify @aws-amplify/ui-react

Аутентификация

Давайте продолжим и добавим аутентификацию в приложение.

Аутентификация в Amplify использует Amazon Cognito.

$ amplify add auth

Сделайте выбор ниже или в соответствии с вашей конфигурацией:

Эта команда поможет нам ответить на ряд вопросов. Каждый вопрос настраивает аутентификацию для нашего приложения.

Если вы не уверены, какая конфигурация вам нужна, выберите Yes, use the default configuration в качестве первого вопроса. Вы всегда можете вернуться и изменить эти настройки, выполнив команду amplify update auth.

Теперь у нас есть модуль аутентификации, настроенный для нашего приложения. Но нам все еще нужно развернуть эту конфигурацию в нашей учетной записи AWS. К счастью для нас, этим также занимается Amplify CLI.

Давайте отправим конфигурацию в облако с помощью следующей команды:

$ amplify push

Это создаст и развернет необходимые изменения в нашей учетной записи AWS для поддержки нашего модуля аутентификации. Файл конфигурации с именем aws-exports.js будет скопирован в ваш настроенный исходный каталог, например ./src.

Настройте Amplify в приложении React

Теперь давайте добавим службу аутентификации Amplify в наше приложение React.

Откройте вашу любимую IDE и отредактируйте index.js файл:

Затем добавьте Amplify Authenticator в ваш App.js файл:

Импортируйте withAuthenticator и оберните приложение React.

import { withAuthenticator, AmplifySignOut } from "@aws-amplify/ui-react";
...
export default withAuthenticator(App);

Теперь мы готовы протестировать приложение.

Запустите приложение, используя:

npm run start

Ваш браузер загрузит защищенную страницу для входа в систему. Теперь ваше приложение защищено с помощью Amplify.

Создать новый аккаунт:

AWS отправит электронное письмо с кодом подтверждения. Введите свой проверочный код, и пользователь будет создан.

Войдите в систему и добро пожаловать в свое безопасное приложение React:

Войдите в свою учетную запись AWS, перейдите в сервис Cognito, и теперь вы можете увидеть нового пользователя, созданного в AWS Cognito:

Следующие шаги

Это только начало использования Amplify с React. В следующих постах я расширю приложение, добавив:

  • API: выполняйте HTTP-запросы с помощью REST и GraphQL легко и безопасно.
  • Аналитика: прямая аналитика для отслеживания пользовательских сеансов, атрибутов и показателей в приложении.
  • Хранилище: безопасное управление пользовательским контентом в облаке или на устройстве.

Весь исходный код доступен на моем GitHub.

Обновлять

  • Теперь доступно создание приложения React с помощью AWS Amplify в простых шагах (Часть 2). Добавьте API AWS AppSync GraphQL в свое приложение React.
  • 2020–05–21: обновлен код до Amplify версии 3.

Удачного кодирования!