Иногда отдельный PHP-пакет появляется не потому, что очень захотелось написать ещё один...
Иногда отдельный PHP-пакет появляется не потому, что очень захотелось написать ещё один пакет. Всё гораздо прозаичнее: полез чинить старый проект и раскопал там очередной привет из 2017. Когда я начал модернизировать свой старый symfony-shop, добрался до авторизации через Яндекс. Она была завязана на legacy-зависимость, которую уже не хотелось тащить дальше в обновлённый проект. Можно было заменить этот пакет кодом прямо внутри приложения и забыть. Но подобные ситуации встречаются довольно часто, и в этот раз мне хотелось не просто закрыть проблему "по-быстрому" внутри одного проекта, а сделать решение, которое можно будет использовать и в других приложениях. Заодно это хороший повод внести небольшой вклад в open source. Задача сама по себе довольно типичная: авторизация через Яндекс ИД нужна далеко не одному проекту. Существующий пакет rakeev/oauth2-yandex к этому моменту заметно устарел: последнее обновление было ещё в 2017 году, а при тестировании обновлённого приложения из-за него уже появлялись предупреждения. Вместо того чтобы латать старую зависимость, я решил сделать отдельный пакет на современном PHP и на базе league/oauth2-client. Так появился yaleksandr89/oauth2-yandex — небольшой OAuth 2.0 provider для Яндекс ИД. Он умеет провести авторизацию через Яндекс, получить и обновить токен, загрузить данные пользователя. Для Symfony его тоже можно подключить через KnpUOAuth2ClientBundle. — Ссылки на пакет: • GitHub • Packagist — #разбор #backend #процессы