Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Безопасная аутентификация без пароля с использованием Auth0

by
Difficulty:IntermediateLength:ShortLanguages:

Russian (Pусский) translation by Anna Goorikova (you can also view the original English article)

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

Что такое Auth0?

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

Позвольте мне кратко изложить, что Auth0 предлагает:

  • единая точка входа
  • многофакторная аутентификация
  • вход в систему без пароля
  • управление пользователями
  • и многое другое!

Начальная настройка

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

Прежде чем двигаться вперед, обязательно установите Composer, поскольку он будет использоваться для установки актуальных SDK Auth0 с использованием файла composer.json. Кроме того, если вы хотите следовать за примерами в этой статье, то получите бесплатную учетную запись для Auth0.

Давайте начнем с получения клона образца проекта.

Установка зависимостей

Для установки зависимостей выполните команду composer install.

Согласно файлу composer.json, вы должны установить пакеты vlucas/phpdotenv и auth0/auth0-php.

Библиотека vlucas/phpdotenv используется для инициализации переменных среды окружения из файла .env. Таким образом, он позволяет вам отделить конфигурацию от кода, который изменяется в зависимости от среды.

С другой стороны, пакет auth0/auth0-php поможет нам настроить авторизацию в нашем приложении.

Настройка переменных среды

Затем давайте настроим конфигурацию нашего приложения в файле .env. Идем дальше и создаем файл .env, копируя его из файла .env.example.

Он содержит значения конфигурации, которые будут использоваться библиотекой Auth0.

Вы можете найти большинство настроек в разделе Applications > Default App > Settings на панели управления Auth0. Обратите внимание, что я использую приложение по умолчанию, созданное системой. Конечно, если хотите, вы можете создать новое приложение.

AUTH0_CALLBACK_URL - это URL-адрес вашего приложения, на который Auth0 будет перенаправлять пользователей после входа в систему и выхода из системы. Значение, заданное в этом поле, должно быть настроено в разделе Allowed Callback URLs в настройках приложения на панели управления Auth0.

Вход в систему без пароля с использованием Email

Чтобы включить вход в систему без пароля с помощью электронной почты, откройте Connections > Passwordless на панели управления Auth0 и включите параметр Email.

В большинстве случаев настройки по умолчанию в разделе Email просто работают из коробки. Конечно, если вы хотите изменить какие-либо настройки, сделайте это. Не забудьте включить приложения, для которых вы хотите аутентификацию без пароля, в Connections > Passwordless > Email > Applications.

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

Реализация входа в систему без пароля

Идем дальше и создаем файл email_auth_example.php со следующим содержимым.

В начале мы включили автозагрузчики, которые отвечают за загрузку Auth0 классов и классов, связанных с переменной среды.

После этого мы инициализируем конфигурационные переменные из файла .env, используя функцию getenv.

Затем мы вызываем метод getUser объекта Auth0, чтобы проверить, есть ли активная сессия. Исходя из этого, мы показываем ссылку SignIn, если нет активной сессии. В противном случае отображается имя пользователя, вошедшего в систему, и ссылка Logout.

А теперь запустите файл email_auth_example.php, чтобы протестировать ваше приложение!

Вход в систему без пароля с использованием SMS

Чтобы включить вход в систему без пароля с помощью SMS, перейдите в раздел Connections > Passwordless на панели управления Auth0 и включите параметр SMS. По умолчанию Auth0 использует сервис Twilio для отправки сообщений. Поэтому вам стоит создать себе аккаунт Twilio.

На панели инструментов Twilio получите свои ACCOUNT SID и AUTH TOKEN и введите эти значения в поля Twilio SID и Twilio AuthToken в разделе Connections > Passwordless > SMS > Settings на панели управления Auth0.

Кроме того, вам необходимо создать новый сервис обмена сообщениями в SMS > Messaging Services на панели инструментов Twilio. После успешного создания сервиса вы получите идентификатор Service ID, и именно его вам нужно будет ввести в поле Copilot SID в Connections > Passwordless > SMS > Settings.

Наконец, давайте посмотрим, как работает авторизация без пароля с помощью SMS. Создайте файл sms_auth_example.php. Содержимое такое же, как email_auth_example.php, за исключением функции login(), которая выглядит следующим образом.

Все почти то же самое, за исключением того, что мы предоставили sms вместо email в свойстве allowedConnections.

А теперь запустите файл sms_auth_example.php, чтобы протестировать ваше приложение!

Заключение

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

Не стесняйтесь оставлять какие-либо мысли или вопросы, используя комментарии!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.