Next.js встречает Firebase и mobx | II
Эпизод 2 | Аутентификация Firebase
В предыдущей статье мы создали простое приложение, которое автоматически показывает случайное приветственное сообщение. Мы использовали только mobx и next.js и еще не трогали firebase.
В этой статье мы добавим аутентификацию через провайдера google oauth firebases и будем отслеживать состояние пользователя в магазине mobx. Это очень похоже на все другие решения, предлагаемые firebase (facebook, github, twitter, custom) - не стесняйтесь спрашивать, есть ли у вас проблемы.
Создание хранилища аутентификации
Включить поставщиков аутентификации в firebase
Аутентификация с помощью firebase чрезвычайно проста: включив нужных поставщиков аутентификации в консоли firebase, вы практически готовы к работе.
Подключите наше приложение
Все, что нам нужно сделать сейчас, - это инициализировать наше приложение и убедиться, что оно инициализировано только один раз:
Теперь мы можем начать аутентификацию наших пользователей:
Это было слишком просто!… Так что давайте перенесем аутентификацию в хранилище mobx и будем прислушиваться к изменениям состояния аутентификации вместо того, чтобы выполнять обещание. Таким образом, мы можем постоянно сохранять состояние аутентификации на страницах и даже перезагружать страницу, поскольку прослушиватель authStateChanged срабатывает автоматически!
Мы создали наблюдаемый пользовательский объект, в котором мы храним пользовательские данные - теперь мы можем просто использовать его везде и изменять наши представления в зависимости от состояния пользователя.
Разве это не круто? ❤
Теперь мы можем в основном использовать шаблон внедрения, как описано в предыдущей статье, и встроить наблюдаемый пользовательский объект где-нибудь на странице - например, виджет аватара, который отображает изображение пользователя в Google +.
Забрать
Использовать firebase для базовой аутентификации до смешного просто - в основном это однострочный интерфейс, и даже если добавить приправы с помощью mobx и next.js-SSR, все не усложняется.
Вы можете найти репозиторий git в этом состоянии с тегом v.0.0.2.
Разное
В прошлый раз мы не добавляли линтер, но как мы все знаем:
Линтинг важен!
Так что давай сделаем это сейчас! С next.js вы можете использовать любой линтер, который вам нравится. Чтобы упростить задачу, давайте возьмем standard.js, который используется next.js внутри компании. Просто установите модуль через:
npm install standard --save-dev
Теперь вы можете использовать префикс практически для каждого сценария npm, который вам нравится, с помощью withstandard &&
, и он будет содержать ваш код перед запуском! Я лично рекомендовал бы вместо этого использовать eslint with airbnb, так как он поставляется с множеством хороших рекомендаций по шаблонам кода реакции. Я особенно большой поклонник jsx-a11y, который помогает вам с расширенными возможностями в приложениях React. Установка немного сложнее, поскольку требует гораздо больше зависимостей, чем standard.js, но я бы сказал, что оно того стоит. Просто следуйте инструкциям по npmjs, и все готово.
В следующем эпизоде мы будем использовать базу данных firebase для хранения пользовательских данных и создания некоторых правил проверки. Следите за обновлениями и не забудьте подписаться ❤