Когда вход через VK создает второго пользователя вместо входа в аккаунт, человек видит пустой профиль, потерянные заказы или отсутствие истории.
Для сервиса это создает дубли, обращения в поддержку и риск неверно связать данные разных пользователей.
Коротко: нужно проверить, как сайт ищет существующий аккаунт и сохраняет VK social id.Почему это ломается
Дубли появляются, если сайт создает пользователя до проверки email, не хранит VK id, не умеет привязывать соцсеть к существующему аккаунту, получает скрытый email или сравнивает данные в разном формате.
Что проверяю первым
- сохраняется ли VK user id
- есть ли существующий аккаунт с таким email или телефоном
- как работает привязка соцсети
- не создается ли пользователь до завершения проверки
- как объединять дубли безопасно
Как проходит исправление
Я проверяю OAuth-сценарий: ответ VK, поиск пользователя, привязка social id, создание сессии и правила объединения дублей.
- добавляю хранение VK social id
- исправляю поиск существующего аккаунта
- делаю безопасную привязку соцсети
- разбираю существующие дубли
- проверяю вход после привязки
Что подготовить
- пример дубля пользователя
- настройки VK OAuth
- лог входа через VK
- доступ к базе пользователей
- правила, как объединять аккаунты
Какой результат нужен
Пользователь должен входить в свой существующий аккаунт, а новый профиль создаваться только если аккаунта действительно нет.
Чего лучше не делать
Не объединяйте аккаунты только по похожему имени. Для безопасности нужны надежные признаки: подтвержденный email, телефон или явная привязка.
Вопросы и ответы
Почему VK не возвращает email?
Email может быть скрыт или недоступен в scope. Тогда нужно использовать другой безопасный признак привязки.
Можно ли объединить уже созданные дубли?
Да, но аккуратно, с сохранением заказов, заявок и истории.
Что делать, если email отличается?
Нужен сценарий подтверждения владельца аккаунта перед объединением.
Нужно ли показывать кнопку привязки в профиле?
Да, это помогает пользователю явно связать соцсеть с текущим аккаунтом.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот или лог ошибки, и я подскажу, с чего безопасно начать исправление.
Итог
Social login должен не только создавать пользователя, но и безопасно находить существующий аккаунт. Иначе соцсети порождают дубли.