Реализация OAuth2 с JWT для PHP бэкенда

В наших скринкастах в серии по разработке полноценного проекта на микрофреймворке SlimPHP с фронтендом на ReactJS мы полностью завершили реализацию аутентификации OAuth 2.0 на бэкенде со многими нюансами, которые стоит учитывать. Получился интересный плейлист из пяти записанных и удобно смонтированных эпизодов:


Аутентификация OAuth2 и токены JWT Free

Перед программированием нам нужно определиться, как мы будем осуществлять аутентификацию в приложении из JS-фронтенда и API. Как раз здесь рассмотрим практики аутентификации по токенам при работе с API и сравним классические подходы с использованием токенов в формате JWT. И поймём, какие данные полезно хранить в токене.


Интеграция OAuth2 Server Free

Исследуем работу компонента League OAuth2 Server и проинтегрируем его в наш проект. Напишем требуемые сущности и репозитории по интерфейсам компонента. Добавим сохранение авторизационного кода и токена обновления через Doctrine.


Страница входа и Query-модель

Когда у нас готовы сущности и репозитории создадим сам компонент OAuth-сервера. Сгенерируем файлы ключей и сделаем их деплой из Jenkins через Docker Secrets. Сделаем страницу входа и контроллер для генерации и обновления токенов. Добавим Query-модель для выполнения запросов на чтение данных для поиска пользователя по почте и паролю.


Аутентификация для контроллеров

После добавления токенов пришла пора эти токены принимать и валидировать. И извлекать из них идентификатор пользователя для использования в контроллере. Для этого создадим компонент сервера ресурсов. Добавим middleware для аутентификации и рассмотрим несколько вариантов его написания и использования.


Роль в JWT и Cron в Docker Swarm

Доделаем нюансы, не реализованные ранее. Сначала добавим роль в JWT. Потом напишем генератор токенов для E2E тестов. И сделаем форсированное разлогинивание пользователя и автоочистку устаревших кодов из БД по Cron в Docker Swarm.


Также free-видео мы выкладываем на канал DeworkerPro в YouTube.

А за свежими выпусками удобно следить в каналах @deworkerpro и @elisdnru в Telegram.

Комментарии

 

emil

Здорово Дмитрий.У тебя на блоге настолько сложная инфа - что простому блоггеру ее не понять.Как вы программисты в таком разбираетесь....Посмотрел Портфолио, вроде все норм но я бы посоветовал или брать совершенные готовые шаблоны или заказывать у дизайнера

Ответить

Оставить комментарий

Войти | Завести аккаунт | Войти через


(никто не увидит)





Можно использовать теги <p> <ul> <li> <b> <i> <a> <pre>