Как регистрировать и авторизовать пользователя на сайте через OAuth Вконтакте API, Facebook API и других соцсетей?

Я отправляю пользователя на авторизацию на стороннем сайте. Получил токен, запрашиваю информацию о пользователе, например его ID и e-mail. Для регистрации записываю в базу этот ID с флагом соцсети откуда он пришел, а для авторизации запрашиваю этот ID с флагом и авторизую.

Я хочу, чтобы, откуда бы не пришел пользователь: Facebook, Вконтакте, Mail.ru или моя собственная регистрация, у них был один аккаунт.

Подскажите, возможно ли реализовать такую систему?

Все соцсети отдают мне e-mail (а если он скрыт настройками приватности)?
  • Вопрос задан
  • 16859 просмотров
Решения вопроса 1
nazarpc
@nazarpc
Open Source enthusiast
Некоторые соцсети отдают email, некоторые нет.
Лучше всего пользоваться готовыми библиотеками, если не очень вникаете в суть. Для PHP рекомендую HybridAuth.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@Alex10
Все зависит от того насколько серьезно планируется заниматься своим ресурсом. Если нужна просто авторизация то возможно действительно лучше воспользоватся сторонним сервисом.

Если будут другие доработки то лучше конечно один раз разобраться с апи. Email не отдают твитер и кажется вконтакте. Плюс у пользователя могут быть разные почтовые ящики в разных аккаунтах.

В вашем случае проще наверно при заходе пользователя с какой либо соц сети просто смотреть в каких в браузере он еще залогинен и сводить аккаунты вместе.
Ответ написан
CoDe_reD
@CoDe_reD
Если не хотите глубоко вникать, воспользуйтесь ulogin.ru/

Не все соц. сети отдают адрес эл. почты, так что его приходится запрашивать дополнительно.
Ответ написан
Salvador2006
@Salvador2006 Автор вопроса
Спасибо. Буду использовать.
Ответ написан
Комментировать
xaker1
@xaker1
Лучше всего не заострять внимание на email, f bc
Ответ написан
Комментировать
krivochenko
@krivochenko
Программист Yii Framework
Давно лежит в избранном пост. Нет времени реализовать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы