Задать вопрос

Как определить провайдера при авторизации через соц сети?

Сделал авторизацию через социальные сети (вконтакте для примера):
При желании атвторизоваться через VK пользователь жмет на ссылку вроде этой:
http://oauth.vk.com/authorize?client_id=3333333&redirect_uri=http://mysite/index.php?do=auth_social&provider=vk&response_type=code

И вроде все нормально, авторизация работает, но я получаю в ответ вот это:
http://mysite/index.php?do=auth_social&code=1428c3455fg4c9cc9ab

т.е. мне не возвращается $_GET['provider'] == 'vk', поэтому я не могу определить через какую соц сеть авторизовался пользователь.
Или это как-то по-другому делается?
  • Вопрос задан
  • 259 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
allard
@allard
Серийный программист
Попробуйте вот так:
http://oauth.vk.com/authorize?client_id=3333333&redirect_uri=http%3A%2F%2Fmysite%2Findex.php%3Fdo%3Dauth_social%26provider%3Dvk%26response_type%3Dcode

Вы пытаетесь передать url в urle.
Для аргументов url в php используйте php.net/manual/ru/function.urlencode.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
scherbuk
@scherbuk
в вашем случае вижу вариант только проверь с помощью js атрибут href и отправить аяксом post на сервер

а вообще я бы сделал так:
пользователей заставлял бы жать на ссылки вида
/auth/provider/vkontakte
...
А там уже Location: oauth.vk.co ...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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