Как регистрировать и авторизовать пользователя на сайте через OAuth Вконтакте API, Facebook API и других соцсетей?
Я отправляю пользователя на авторизацию на стороннем сайте. Получил токен, запрашиваю информацию о пользователе, например его ID и e-mail. Для регистрации записываю в базу этот ID с флагом соцсети откуда он пришел, а для авторизации запрашиваю этот ID с флагом и авторизую.
Я хочу, чтобы, откуда бы не пришел пользователь: Facebook, Вконтакте, Mail.ru или моя собственная регистрация, у них был один аккаунт.
Подскажите, возможно ли реализовать такую систему?
Все соцсети отдают мне e-mail (а если он скрыт настройками приватности)?
Некоторые соцсети отдают email, некоторые нет.
Лучше всего пользоваться готовыми библиотеками, если не очень вникаете в суть. Для PHP рекомендую HybridAuth.
Все зависит от того насколько серьезно планируется заниматься своим ресурсом. Если нужна просто авторизация то возможно действительно лучше воспользоватся сторонним сервисом.
Если будут другие доработки то лучше конечно один раз разобраться с апи. Email не отдают твитер и кажется вконтакте. Плюс у пользователя могут быть разные почтовые ящики в разных аккаунтах.
В вашем случае проще наверно при заходе пользователя с какой либо соц сети просто смотреть в каких в браузере он еще залогинен и сводить аккаунты вместе.
Маленький опрос среди друзей: vk.com/tramp?w=wall26677_4856%2Fall
Alex10, подскажите пожалуйста способ, как посмотреть в браузере пользователя, где он еще залогинен.
Тут вопрос целесообразности потраченного времени:-) На самостоятельное разгребания тонкостей каждой отдельной соц. сети уйдет масса времени.
Для примера в Одноклассниках и Mail.ru доступы для разработчиков выдаются вручную. Подводных камней много, а здесь довольно лаконичное их решение на мой взгляд.