Обработка пользователей с помощью Angular

При разработке веб-приложений необходима функция аутентификации любого типа.

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

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

Firebase предоставляет серверные сервисы, которые значительно снизят сложность обработки аутентификации пользователей с помощью Angular 4+ как для мобильных, так и для веб-приложений. С Firebase аутентификация и все задачи, связанные с серверной частью, могут быть легко реализованы в вашем проекте Angular.

Аутентификация пользователя Firebase

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

Firebase предоставляет очень простой способ настройки аутентификации в ваших приложениях. Его очень легко интегрировать с вашим приложением, и его можно настроить для использования с несколькими поставщиками социальной аутентификации, такими как Facebook, Google, Github, Twitter и т. Д. За счет интеграции этих поставщиков аутентификации пользователи могут использовать свои существующие социальные учетные записи для выполнения входа в систему. в вашем веб-приложении или мобильном приложении. Он также позволяет пользователям регистрироваться с использованием учетных записей электронной почты и пароля или номера телефона.

Я считаю, что Firebase идеально подходит для ваших веб-приложений или мобильных приложений, разработанных с помощью Angular 5, потому что он предоставляет очень полезные серверные службы, такие как хранилище, база данных в реальном времени, аутентификация и т. Д. Кроме того, он поддерживается Google и предлагает бесплатный многоцелевой сервис. функция аутентификации платформы.

Стоит упомянуть, что база данных Firebase - это база данных, отличная от SQL, которая работает с объектами JSON (без таблиц или записей), где она может хранить и синхронизировать данные между своими пользователями в режиме реального времени.

В этом посте мы рассмотрим, как настроить простой адрес электронной почты / пароль, а также рабочие процессы аутентификации для входа в социальную сеть для приложений Angular 5 с использованием потрясающей библиотеки AngularFire2. AngularFire - официальная библиотека для Firebase и Angular.

Если вы новичок в Angular или хотите освежить некоторые основы, я предлагаю прочитать этот пост:



Учебник по Angular: пошаговое изучение Angular с нуля - Учебник по Angular 5
Полное руководство по Angular 5 medium.com



Пошаговое руководство по аутентификации

В следующем разделе вы узнаете, как разработать веб-приложение на Angular 5, способное обрабатывать социальную и настраиваемую аутентификацию. Мы интегрируем аутентификацию Facebook, Google и Twitter, а также опцию электронной почты и пароля.

Вы также узнаете, шаг за шагом, как разработать систему аутентификации Angular с использованием Firebase в качестве платформы аутентификации.

Вы можете получить весь исходный код в оригинальной статье:



Настройка Firebase в вашем Angular проекте

Чтобы продолжить изучение этого руководства, необходимо сделать следующее:

Создайте и правильно настройте среду разработки, чтобы иметь возможность разрабатывать веб-приложения на Angular 5:

  • Установите Nodejs & npm (менеджер пакетов узлов)
  • Установите интерфейс командной строки Angular CLI, который позволяет создавать проект angular и облегчает генерацию компонентов.

Создайте проект Angular 5, в который мы интегрируем эту функциональность, или вы также можете загрузить код этого руководства по angular 5 и подключить его к своей учетной записи Firebase.

После настройки среды разработки вы собираетесь создать бесплатную учетную запись Firebase. Для этого перейдите на страницу https://firebase.google.com/ и Войдите в свою учетную запись (или создайте новую). Затем нажмите Перейти к ссылке консоли. На консоли у вас будет возможность создать новый проект Firebase, сделайте это.

После создания проекта firebase вы будете перенаправлены на следующий экран:

Нажмите кнопку Добавить Firebase в свое веб-приложение, и появится всплывающее окно с учетными данными вашего приложения. Всплывающее окно будет содержать следующую информацию о вашем новом приложении Firebase:

Подключите Firebase к вашему проекту Angular

Следующее, что нам нужно сделать, чтобы подключить Firebase к нашему проекту Angular 5, - это добавить учетные данные приложения Firebase сверху в наш проект Angular. Мы добавим эти учетные данные в наш файл конфигурации проекта Angular environment.ts, расположенный в src/environments/environment.ts

Установка AngularFire2

Чтобы подключить веб-приложение Angular 5 к базе данных Firebase, мы будем использовать библиотеку Angular Fire 2, которая является не более чем официальной библиотекой firebase для angular 5. Мы должны установить ее в нашем проекте Angular, чтобы использовать всю аутентификацию Firebase. функции, которые он предоставляет.

Чтобы установить плагин, мы должны запустить следующую команду в нашем проекте Angular:

npm install firebase angularfire2 — save

Затем мы должны импортировать библиотеки Firebase в наш app.module.ts, чтобы мы могли использовать их в нашем проекте Angular. Для этого перейдите в src/app/app.module.ts и добавьте следующий импорт. Мы также должны объявить их в разделе Импорт модулей.

Настройка провайдеров входа в социальные сети Firebase

На этом этапе мы собираемся интегрировать в наше приложение Angular выбранные нами провайдеры входа в социальные сети. В этом руководстве мы включим Google, Facebook и Twitter в качестве параметров входа в социальные сети для нашего примера приложения Angular 5.

Чтобы выбрать методы аутентификации, которые вы хотите интегрировать в свое приложение Angular, перейдите в свой проект Firebase под консолью Firebase, затем перейдите в Разработка = ›Аутентификация и затем щелкните вкладку Метод входа. Более подробные инструкции см. На изображении ниже.

Для каждого провайдера, которого вы хотите включить, вы должны выполнить некоторые шаги по настройке и настройке. Не волнуйтесь, мы поможем вам в этом процессе 😄

Поставщики аутентификации Firebase, такие как Facebook и Twitter, требуют от вас предоставить идентификатор клиентского API и секретный ключ клиентского API, а также использовать предоставленный URI UAuth в качестве URI перенаправления из вашего приложения Facebook или Twitter.

Эта информация получается путем создания приложения для каждого поставщика с использованием учетной записи разработчика каждого поставщика (Facebook и Twitter). Давайте рассмотрим каждую конфигурацию.

Настройка аутентификации Facebook

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

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

После создания приложения Facebook мы возвращаемся в раздел аутентификации, расположенный в консоли Firebase. Затем мы переходим к методам входа на консоли и включаем опцию Facebook, для этого необходимо добавить идентификатор приложения facebook и секретный ключ приложения, как показано на скриншоте ниже:

Как только Facebook будет включен в качестве входа в систему, автоматически будет сгенерирован действительный URI перенаправления OAuth, который необходимо ввести на панели приложения Facebook, как показано ниже:

Настройка аутентификации Google

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

Затем мы должны следовать инструкциям по настройке SHA1 на скриншоте выше.

Настройка аутентификации Twitter

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

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

После создания приложения Twitter мы возвращаемся в раздел аутентификации, расположенный в консоли Firebase. Затем переходим к методам авторизации на консоли и включаем опцию Twitter, для этого необходимо добавить Twitter API KEY и API SECRET.

После включения необходимо автоматически сгенерировать URL-адрес обратного вызова, который необходимо добавить в приложение Twitter.

Компоненты, шаблоны и маршруты

Наш пример приложения Angular 5 для этого руководства будет состоять из трех компонентов. Каждому компоненту соответствует свой шаблон.

  • Компонент входа - здесь будут представлены наши учетные записи в социальных сетях, а также будет предоставлена ​​возможность входить в систему с помощью электронной почты и пароля.
  • RegisterComponent - здесь будут представлены наши учетные записи в социальных сетях, а также будет предоставлена ​​возможность создать новую учетную запись с адресом электронной почты и паролем.
  • UserComponent - это защищенная область, к которой будут иметь доступ прошедшие аутентификацию пользователи.

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

Служба аутентификации

В этом руководстве Firebase Authentication with Angular 5 мы создали AuthService, который позволит нам входить в систему, регистрировать и выходить из системы пользователей с различными поставщиками Firebase. Вся логика аутентификации будет храниться в этой службе, что позволит нам создавать компоненты, не требующие реализации какой-либо логики аутентификации, и поможет упростить наши компоненты.

Другими словами, наш AuthService сделает большую часть тяжелой работы и является связующим звеном между нашим приложением Angular и Firebase.

Итак, в этом сервисе мы импортируем следующие классы, которые нам нужны для создания наших методов аутентификации:

import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';

Затем мы добавляем в наш конструктор AuthService следующее:

constructor(public afAuth: AngularFireAuth){}

Социальный вход

В нашем AuthService у нас есть функции для выполнения каждого входа в социальную сеть с помощью Firebase. Например, для входа в Facebook мы используем следующий код.

Если вам нужно получить от пользователя дополнительную информацию, например о его дне рождения, вы можете использовать метод addScope. Например: provider.addScope('user_birthday');

Для входа в Google мы указываем дополнительные области OAuth 2.0, которые мы хотим запросить у поставщика аутентификации Google, такие как профиль и адрес электронной почты.

А вот так будет выглядеть наш пример angular 5 :)

Электронная почта / Пароль Войти

Так же, как и с социальными провайдерами, мы должны включить метод входа по электронной почте / паролю в консоли Firebase.

Для этой функции необходимо иметь некоторые базовые знания об Angular Forms, потому что нам нужно создать форму, чтобы пользователь мог ввести свой адрес электронной почты и пароль, а затем отправить его. В этом примере приложения angular мы собираемся использовать реактивные формы, поэтому в нашем шаблоне страницы регистрации у нас есть следующий html-код:

Затем в нашем register.component.ts у нас есть наша tryRegister() функция, которая вызывает AuthService и затем показывает сообщение об успешном выполнении или ошибке.

В AuthService наша doRegister() функция просто вызывает метод аутентификации Firebase createUserWithEmailAndPassword(), используя данные, предоставленные пользователем. Firebase выполняет некоторые проверки этих данных, например, проверяет, содержит ли пароль не менее 6 символов или адрес электронной почты уже связан с другой учетной записью. Если все в порядке, Firebase выполнит обещание, возвращающее новую информацию о пользователе.

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

Как только пользователь аутентифицируется, используя любой из предоставленных вариантов аутентификации, он будет перенаправлен на маршрут пользователя, и он увидит на экране некоторую основную информацию, такую ​​как свое имя и изображение. Нажатие кнопки «Выход» приведет к обнулению AuthState и перенаправлению пользователя на экран входа в систему.

Последние мысли

Надеюсь, вы не столкнулись с какими-либо проблемами с этой аутентификацией Firebase с помощью учебника Angular 5, но если вы это сделали, не стесняйтесь оставлять сообщения в разделе комментариев ниже. Помните, что вы можете получить полный исходный код этого приложения Angular в https://angular-templates.io/tutorials/about/firebase-authentication-with-angular

Вот и все, что касается базовой аутентификации с помощью Firebase. Теперь вы можете начать сохранять пользовательскую информацию в Firestore, чтобы создать сложную и надежную систему аутентификации пользователей.

Если вы хотите создать сложное и надежное веб-приложение с помощью Angular 5, вам следует проверить Шаблон администратора Angular, который является наиболее полным и продвинутым шаблоном Angular 5 с большим количеством компонентов и улучшений производительности. Он включает в себя такие функции, как Angular Universal, AOT (предварительная компиляция), Material Design, Lazy Loading Routes, Angular CLI, а также множество полезных компонентов и красивых экранов.

Первоначально опубликовано на angular-templates.io.