Вход через сторонние сервисы

Программирование входа в PHP-проект по протоколу OAuth2 через сторонние сервисы вроде почтовых сервисов и социальных сетей. Добавление кнопок быстрого входа в React. Создание заглушек сторонних сервисов для локальной разработки и тестирования:

  • 00:00:14 Постановка задачи
  • 00:01:22 Удаление значений по умолчанию
  • 00:04:29 Параллельный запуск PHP CS Fixer
  • 00:05:52 Смена импорта React.JSX
  • 00:06:18 Упрощение экспорта export default
  • 00:07:42 Переименование Action-классов
  • 00:08:32 Включение Feature Flag входа
  • 00:13:29 Включение фич для Backend по Cookie
  • 00:19:06 Добавление кнопок сторонних сервисов
  • 00:20:43 Cookies для бэкенда в E2E-тестах
  • 00:23:45 Схема интеграции с сервисами по OAuth2
  • 00:28:49 Передача имени сервиса в адресе
  • 00:37:07 Раздельная интеграция каждого сервиса
  • 00:37:49 Вложенные фичи в E2E-тестах
  • 00:42:08 Создание OAuth-приложения в кабинете Yandex
  • 00:43:57 Переменные окружения и секреты для production
  • 00:49:49 Создание Mock-ов сторонних сервисов с Wiremock
  • 01:00:01 Инструкция входа через Yandex
  • 01:01:51 Перенаправление на страницу входа Yandex
  • 01:02:43 Тест на проверку редиректа
  • 01:07:44 Реализация редиректа в контроллере
  • 01:10:40 Класс RedirectResponse
  • 01:12:31 Сервис OAuthClient для генерации редиректа
  • 01:18:30 Интерфейс Provider для провайдеров
  • 01:26:35 Эмуляция страницы входа стороннего сервиса
  • 01:39:25 Эмуляция получения токена и данных пользователя
  • 01:46:49 Фикстуры для проверки существующих пользователей
  • 01:47:27 Контроллер входа по обратному редиректу
  • 01:52:22 Сохранение оригинальных параметров запроса
  • 02:02:36 Тест на контроллер обратного вызова
  • 02:06:53 Программирование авторегистрации и входа
  • 02:13:57 Метод получения регистрационных данных
  • 02:15:41 Поиск и авторегистрация пользователя
  • 02:28:19 Получение регистрационных данных из Yandex
  • 02:33:12 Проверка входа через Yandex вручную и с E2E
  • 02:35:53 Проблема связи тестовых и демо-данных Wiremock
  • 02:37:45 Задание тестовых правил через Wiremock API
  • 02:47:45 Включение кнопки Yandex на production
  • 02:49:05 Интеграция OAuth-входа через MailRu
  • 02:55:35 Удаление устаревших Feature Flags
  • 02:56:17 Принудительный возврат со страницы регистрации
  • 02:59:08 Добавление кнопок входа на Frontend
  • 03:03:17 Обзор результата
Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Комментарии (14)
Руслан

Спасибо!

Ответить
Руслан

Отличная тема, спасибо. Надеюсь ваши видео будут выходить чаще. Вы очень ценный гуру по программированию в ру сегменте. Некоторые ваши старые ролики (в особенности по psr-7/psr-15 фреймворку) до сих пор пересматриваю.

Ответить
Николай

Почему то все видео стали доступны для всех кто не покупал подписку

Ответить
Дмитрий Елисеев

Стал доступен только небольшой фрагмент в начале. Основной контент остался закрытым.

Ответить
Денис

Нет, я без подписки могу просматривать все видео. Хоть я и подписан, просто решил с другого браузера зайти.

Ответить
Дмитрий Елисеев

Можете просматривать только начало видео. Если перемотаете дальше середины, то увидите чёрный экран и кнопку подписки.

Ответить
Arunas

спасибо

Ответить
Максим (@myks92)

Здравствуйте) Недавно столкнулся с очень хорошим бесплатным решением https://coolify.io. Сильно упрощает работу по разворачиванию своих проектов. По капотом используется traefik и все файлы сохраняются на машину, что позволяет через время отказаться от coolify, если не понравится. Настраивается очень просто за несколько минут. Что скажете?)

Ответить
Дмитрий Елисеев

Что скажете?

Не пробовал, так что ничего пока сказать не могу.

Сильно упрощает работу по разворачиванию своих проектов.

Чем именно упрощает?

Ответить
Максим (@myks92)

По сути это работа с сервисами через UI. Позволяет:

  • настроить CD/CD развертывание при комите (как Jenkins)
  • Мониторинг
  • Уведомления
  • Управление доступами другим разработчикам
  • Бэкап базы данных в S3
  • Можно быстро развернуть любой готовый сервис: https://coolify.io/docs/services
  • Умеет управлять доменными именами. То есть можно прямо через UI развернуть админку на новом поддомене (new-admin.site.ru)
  • умеет разворачивать Pull-Request на своем поддомене, чтобы сразу проверить работу новой фичи в нужном состоянии, а не сначала слить, а потом править багом.

Ну и так далее. Удобно в целом то, что:

  • это всё настраивается через UI, а не кодом или минимальным его количеством
  • то что это всё в одном сервисе, который размещается на своей VPS
  • удобно, что всегда можно отказаться от UI и всё останется в коде на серверах, которые можно править.
Ответить
Григорий

Когда выйдут скринкасты:

  • Брокер очередей RabbitMQ;
  • Публикация событий и паттерн Outbox;
  • Запуск команд в Command Bus;
  • Идемпотентный консьюмер событий;
  • WebSocket-уведомления с Centrifugo?

Хотя-бы примерно.

Может быть, будет отдельный стрим про RabbitMQ, если да, то когда?

Ответить
Дмитрий Елисеев

Про RabbitMQ и паттерн Outbox c идемпотентным консьюмером как раз был отдельный стрим. Если вам нужно срочно, то можете сейчас посмотреть там.

Ответить
Григорий

Спасибо, смотрю.

Ответить
Андрей

Ув. Дмитрий - подскажете - когда вы продолжите запись по стальным темам этого курса ?

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Yandex
MailRu
GitHub
Google