Рубрики
Uncategorized

Как легко настроить аутентификацию AWS Amplify UI

Для Parler.io я экспериментировал с добавлением аутентификации в проект. Это позволило бы с … Теги от AWS, React, GATSBY, DEVOPS.

Для Parler.io Я экспериментировал с добавлением аутентификации в проект. Это позволит преобразованиям быть привязчивыми пользователями и включить также мночить другие функции.

Во время моих экспериментов я много читал о AWS усиливается Отказ Это библиотека, которая управляет несколькими службами AWS и позволяет сосредоточиться на построении мобильных и веб-приложений в масштабе в Scale на веб-сервисах Amazon.

Это делает добавление различных категорий функций намного проще. Нужна аутентификация? Для этого есть модуль. Как насчет хранения? Да, есть один для этого.

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

Рамка усиления делает создание масштабируемых мобильных и веб-приложений в AWS упрощенным процессом. В этом посте я собираюсь пройти через то, как я использовал AWS Amplify, чтобы добавить аутентификацию в Parler и как я настроил компоненты пользовательского интерфейса, чтобы соответствовать моим потребностям.

Начиная

Амплификация — это предусмотренная структура AWS. Чтобы начать, мы должны установить и настроить CLI для усиления.

$ npm install -g @aws-amplify/cli

Если у вас нет AWS CLI Установлен и настроен, вам нужно будет настроить усилитель CLI. Если у вас уже есть CLI AWS CLI, вам также не нужно настраивать один усилитель.

# only run this configure if you don't have the AWS CLI
$ amplify configure

После установки усилителя CLI мы можем начать добавлять модули к нашему мобильному или веб-приложению.

Для моего проекта я использую GATSBY Чтобы построить веб-приложение. Это современный статический генератор сайта, который можно использовать для быстрого создания статических веб-сайтов, блогов, портфелей и даже веб-приложений. Поскольку GATSBY построен на вершине реагирования, мы можем использовать все те же идеи от реагирования в GATSBY.

Давайте инициализируем и настройте нашу начальную настроек усиления для A RACT Web Application.

Инициализация усиления

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

# run this from the root directory of your application
$ amplify init

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

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

Теперь, когда мы инициализировали рамки в нашем приложении, мы можем начать добавлять модули. Для этого поста в блоге мы собираемся добавить аутентификация модуль к нашему применению.

Мы можем сделать это с другим вызовом в нашей командной строке.

$ amplify add auth

Эта команда пройдет нас через ряд вопросов. Каждый вопрос настроить аутентификацию для нашего приложения. Если вы не уверены, какая настройка вам нужна, продолжайте и выберите Да, используйте конфигурацию по умолчанию для первого вопроса. Вы всегда можете вернуться и перенастроить эти настройки, запустив команду Усилить обновление Auth Отказ

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

$ amplify push

Это создаст и развернут необходимые изменения в нашей учетной записи AWS для поддержки нашего модуля аутентификации. С настройками по умолчанию это предоставит AWS Cognito для обработки аутентификации в наше приложение.

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

Использование усиления с реагированием

Добавлена система усилителя, мы настроили аутентификацию, и мы предоставили необходимые услуги AWS для поддержки нашего приложения. Теперь пришло время мы создали нашу применение React/GATSBY для обеспечения использования рамок.

В целях этого поста в блоге мы собираемся предположить, что у нас есть Приложение Компонент, который является основной точкой входа для нашего приложения. Мы также собираемся предположить, что вы не можете получить доступ к приложению, не будучи аутентифицирован первым.

Вот что наша начальная Приложение Компонент будет выглядеть так. Он подается в /приложение Маршрут через конфигурацию GATSBY. Прямо сейчас он широко открыт для мира, аутентификация не требуется.

import React from "react";

class App extends React.Component {
  constructor(props, context) {
    super(props, context);
  }

  render() {
    return (
      

Internal App

); } } export default App;

Со мной до сих пор? Здорово. Теперь мы хотим поставить наше приложение за модуль аутентификации, который мы добавили через усиление. Для этого мы устанавливаем еще два библиотека в нашем проекте.

$ npm install aws-amplify aws-amplify-react

Теперь, когда мы добавили эти два библиотека, мы можем быстро добавить аутентификацию в наше приложение. Во-первых, нам нужно настроить усиление внутри нашего Приложение компонент. Тогда мы можем использовать компонент более высокого порядка (HOC), с уэйтэнтикатором , специально созданный для приложений реагирования. Этот компонент добавляет всю логику, чтобы поставить наши Приложение Компонент за аутентификацией. Он также включает в себя все куски пользователей, которые нам нужно войти в систему пользователей, регистрация новых пользователей и обрабатывать потоки, такие как подтверждение учетной записи и сброса пароля.

Давайте посмотрим, как выглядят эти изменения в нашем Приложение компонент.

import React from "react";
import Amplify from "aws-amplify";
import { withAuthenticator } from "aws-amplify-react";
import config from "../../aws-exports";
Amplify.configure(config);

class App extends React.Component {
  constructor(props, context) {
    super(props, context);
  }

  render() {
    return (
      

Internal App

); } } export default withAuthenticator(App, true);

Также так, что у нас теперь есть аутентификация, добавленная в наше приложение React, которое построено с GATSBY. Если мы запустим GATSBY Развивается Из нашей командной строки и проверьте наши изменения локально, мы должны иметь возможность увидеть подсказку для входа в систему по умолчанию, предоставляемое усилением.

Довольно гладко справа? С помощью нескольких операций командной строки у нас есть аутентификация, включенная в наше приложение. Все услуги AWS, необходимые для поддержки нашего приложения, обеспечиваются и постоянно поддерживаются основой усилителя.

Это все фантастические, но для парлера я также хотел настроить части пользовательских пользователей, которые усиливаются. Эти предварительно настроенные компоненты пользовательских интерфейсов отлично подходят для начала работы, но я хотел добавить свой собственный стиль для них, используя CSS-Wiftwind.

Итак, теперь давайте рассмотрим, как настроить интернет-интерфейс аутентификации усиления, переопределив компоненты по умолчанию, как Signin С нашим собственным CustomSignin компонент.

Настройка UI усилителя

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

Например, для входа в систему UI обрабатывается компонентом внутри усиления Signin , вы можете увидеть полный исходный код этого модуля здесь Отказ

Что мы собираемся сделать дальше, определяют наш собственный компонент, CustomSignin , что собирается расширить Signin компонент от усиления. Это позволяет нам использовать всю логику, уже встроенную в родительский компонент, но определяют наш собственный пользовательский интерфейс. Давайте посмотрим, что CustomSignin похоже.

import React from "react";
import { SignIn } from "aws-amplify-react";

export class CustomSignIn extends SignIn {
  constructor(props) {
    super(props);
    this._validAuthStates = ["signIn", "signedOut", "signedUp"];
  }

  showComponent(theme) {
    return (
      

No Account?{" "} super.changeState("signUp")} > Create account

); } }

С CustomSignin Мы продлеваем Signin Компонент из AWS-AMPLIFY-RECT Отказ Это так, чтобы мы могли переопределить ShowComponent метод, но все еще используйте функции родительского класса, такие как заграничить и войти .

Обратите внимание, что мы не переоцениваем оказывать метод но ShowComponent вместо. Это потому, что родитель Signin Компонент определяет интернет-интерфейс внутри этой функции. Следовательно, чтобы показать наши UI, нам нужно переопределить его в нашем компоненте.

Внутри нашего конструктора мы видим следующее утверждение.

this._validAuthStates = ["signIn", "signedOut", "signedUp"];

Усилитель использует authstate Чтобы отслеживать, какое состояние аутентификации в настоящее время активно. Пользовательские компоненты, которые мы определяем, может указывать, какие состояния AUTH действительны для этого компонента. Поскольку мы находимся в View в логине/подписать, мы только хотим рендер наш пользовательский интерфейс, если authstate равняться войти , подписан или Зарегистрироваться Отказ Это все волшебное соус, происходящее, чтобы показать наш интерфейс по поводу UI Amplify по умолчанию.

Мы расширяем Signin Компонент, переопределить ShowComponent Функция, проверьте authstate И показать нашу интернет-интерфейс, если государство является тем, к которому мы ищем.

Довольно гладко справа?

Дайвинг в пользовательский интерфейс немного немного мы видим кнопку «Создать учетную запись», позвонит на Super.ChangeState («Регистрация») когда его нажал. Это функция, определенная в родительском компоненте, мы продлеваем. Обновляет обновления authstate к зарегистрироваться и Регистрация компонент оказывается. Конечно, мы могли, настроить этот компонент, а также после того же процесса, который мы использовали для создания CustomSignin .

Единственное другое изменение, которое нам нужно сделать сейчас, возвращается в нашем Приложение компонент. Вместо использования с уэйтэнтикатором HOC предоставляется усилением, мы собираемся использовать Аутентификатор компонент напрямую.

Чтобы сделать все более четкими, мы собираемся определить новый компонент, AppWithauth , что обернуть нашу Приложение компонент и использует Аутентификатор компонент напрямую.

import React from "react";
import { SignIn } from "aws-amplify-react";
import config from "../../aws-exports";
import { CustomSignIn } from "../Login";
import App from "../App";
import { Authenticator } from "aws-amplify-react/dist/Auth";

class AppWithAuth extends React.Component {
  constructor(props, context) {
    super(props, context);
  }

  render() {
    return (
      
); } } export default AppWithAuth;

Сейчас наше Приложение Компонент получит authstate Как и наши другие компоненты, внутри своего оказывать метод. Если мы проверим состояние внутри этого метода, мы можем показать наше Приложение Компонент только тогда, когда мы подписаны. Давайте посмотрим на наш новый Приложение Код компонента.

import React from "react";

class App extends React.Component {
  constructor(props, context) {
    super(props, context);
  }

  render() {
    if (this.props.authState == "signedIn") {
      return (
        

Internal App

); } else { return null; } } } export default App;

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

Также так, мы добавили аутентификацию на наше приложение, используя Framework Amplify. Мы также настроили компоненты усиления, чтобы дать нашему собственному виду, чувствунию и логике, если нам это нужно.

Вывод

Рамка усиления — это потрясающий новый инструмент в нашем панели инструментов AWS. Здесь мы продемонстрировали, что мы можем добавить аутентификацию в любое веб или мобильное приложение только с несколькими командами CLI. Затем мы можем развернуть службы AWS, которые обратно модули, такие как аутентификация с простым толчок вызов.

Но иногда мы хотим добавить наш собственный стиль к этим типам фреймворков. Не проблема. Мы показали, что мы можем продлить базовые компоненты внутри усиления для создания наших пользовательских интерфейсов, а также скрыть те, о которых нам все равно.

Усилитель продолжает развиваться и состоит из многих дополнительных модулей, таких как хостинг, API, Auth, а также даже хранение. Все ключевые модули и услуги AWS, которые важны для большинства веб-приложений. Кроме того, они также просто объявили Усилить консоль Который содержит глобальный CDN для размещения ваших приложений, а также конвейера CI/CD.

Если у вас есть какие-либо вопросы по поводу этого сообщения или усилителя, не стесняйтесь бросить комментарий ниже.

Вы голодны, чтобы узнать еще больше о Amazon Web Services?

Если вы хотите начать путешествие AWS, но чувствую себя потерянным на том, чтобы начать, рассмотреть Проверка моего курса . Мы сосредоточены на хостинге, защищении и развертывании статических сайтов на AWS. Позволяя нам узнать более 6 различных услуг AWS, как мы их используем. После того, как вы освоили основы, мы можем погрузиться в Два бонусных глава Чтобы покрыть более продвинутые темы, такие как инфраструктура, как код и непрерывное развертывание.

Оригинал: «https://dev.to/kylegalbraith/how-to-easily-customize-the-aws-amplify-authentication-ui-42pl»