
Начал я делать очередной сайт на WordPress и решил упростить регистрацию пользователям. По этому пошел по схеме вход через другие сервисы. Как стало нынче модно-сковородно использовать авторизацию через ВК. Ее то я и решил прикрутить. Делал уже это раньше но вот сегодня столкнулся с проблемой.
Поиск готового решения: Был проведён поиск альтернатив. Официальные плагины из каталога WordPress либо не поддерживают VK ID, либо просто не работают с новым протоколом. На форумах и в обсуждениях — та же картина: Security Error и невозможность авторизоваться. То был плагин Miniorange social login… Но работать он не захотел, подозреваю дело в устаревшем API.
Ну полез искать я в этих ваших интернетах. В какой-то момент было найдено решение от одного разработчика за 5000 рублей. Судя по описанию, это был плагин с поддержкой VK ID, но платный. Платить за то, что можно сделать самостоятельно, желания не возникло. Тем более что задача, если разобраться, не такая сложная: у VK есть официальный VK ID Web SDK, который берёт на себя всю работу с новыми требованиями безопасности, обменом кода и получением данных пользователя.
Решение: свой плагин за вечер Была открыта документация VK ID и написан собственный плагин. Он занял буквально вечер.
Вот что он умеет:
-
Встраиваемая кнопка входа через шорткод [vkid_login]. Никаких всплывающих окон и редиректов — виджет отображается прямо в контенте страницы.
-
Автоматическая регистрация пользователей в WordPress сразу после успешной авторизации.
-
Передача данных профиля — имя, фамилия и email сохраняются в профиль, а отображаемое имя формируется как «Имя Фамилия».
-
Гибкая настройка прав — список запрашиваемых данных задаётся в админке.
-
Локальный SDK — библиотека VK ID лежит в папке плагина, а не грузится с внешнего CDN.
-
Никаких секретов — дополнительные ключи не используются и не хранятся, потому что в современной схеме они просто не нужны.
Почему это работает
Ключевой момент: VK ID SDK сам управляет безопасностью. Он генерирует все необходимые параметры, а обмен кода на токены происходит без участия дополнительных секретов. Это официально поддерживаемая схема для сайтов, и она безопаснее, чем кажется: токен действителен только для той сессии, в которой был получен.
Что в итоге
Плагин получился лёгким, без зависимостей от внешних CDN и без лишних настроек. Он распространяется под лицензией GPLv2 or later, то есть его можно свободно использовать, модифицировать и распространять, в том числе на коммерческих сайтах.
Плагин выложен для свободного скачивания: https://trapex.ru/vk-id-login-for-wordpress/
Там же — описание, инструкция по установке и требования. Если у вас была такая же проблема с «Security Error» и вы искали рабочее решение — возможно, этот плагин сэкономит вам вечер (или 5000 рублей).
Требования
-
WordPress 5.0+
-
PHP 7.4+
-
HTTPS на сайте (обязательное требование VK ID)
-
Аккаунт разработчика в VK ID с созданным приложением
Протестировал лично на php8.4/ WordPress 7.1 полет нормальный.
Плагин открыт, так что замечания и предложения приветствуются.
Больше информации:
Ссылка на проект: https://trapex.ru/vk-id-login-for-wordpress/
Почта для связи: sa@itp-corp.ru
Если у вас есть вопросы — пишите, не стесняйтесь)
ссылка на оригинал статьи https://habr.com/ru/articles/1081754/