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

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

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

Что такое Auth0?

Auth0 — это инструмент authentication-as-a-service, который упрощает реализацию функций, связанных с проверкой подлинности для вашего приложения или сайта. Если вы создали приложение и хотите просто передать функции аутентификации и авторизации, такой сервис, как 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.

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

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

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

Чтобы включить вход в систему без пароля с помощью электронной почты, откройте Подключения > Без пароля на панели управления 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. После успешного создания службы вы получите идентификатор службы, и это то, что вам нужно будет ввести в поле SID Copilot в Connections > Passwordless > SMS > Settings.

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

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

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

Заключение

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

Автор: Sajal Soni

Источник: //code.tutsplus.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: