krivochenko
@krivochenko
Программист Yii Framework

Redirect_uri с параметрами при использования OAuth авторизации

Всем доброго времени суток. Внедряю в сайт авторизацию через ВКонтакте. Задача: сделать так, чтобы при авторизации с любой страницы сайта, в случае успеха снова открывалась эта же страница.

Пример: адрес страницы http://site.ru/articles?categorie=1&id=8

При генерации страницы создаю ссылку:

Авторизация через ВКонтакте

В итоге, когда пользователь кликает по ссылке, а затем авторизуется на сайте Вконтакте, его перебрасывает на страницу http://site.ru/articles?categorie=1&code=8d61a70a2be1d7d8a8

Как сделать, чтобы переадресация происходила на http://site.ru/articles?categorie=1&id=8&code=8d61a70a2be1d7d8a8

  • Вопрос задан
  • 5254 просмотра
Решения вопроса 1
likerRr
@likerRr
front-end developer

Кодируйте параметры своего redirect_uri, хотя бы с помощью http_build_query, чтобы вместо & было %26

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
Rpsl
@Rpsl
Кратко о себе

Значение параметра redirect_uri имеет смысл закодировать

Ответ написан
Комментировать
ASPAnt
@ASPAnt

Попробуйте поменять местами в ссылке на авторизацию параметры redirect_uri и response_type

Ответ написан
krivochenko
@krivochenko Автор вопроса
Программист Yii Framework

Ну что ж, видимо выход один. Придется заменять амперсанд на %26, а после авторизации - обратно %26 на амперсанд и делать ещё один редирект.

Ответ написан
Комментировать
phpdude
@phpdude

url escaping вам в помощь. если пхп - php.net/urlencode

Ответ написан
@RSV

Как вариант, в сессии пользователя храните всегда последнюю открытую им страницу. При каждом открытии пользователем страницы, проверяйте данные сессии и рефа. Если реф "вконтакте" то сами редиректите пользователя на адрес хранящийся в сессии.

Ответ написан
Ваш ответ на вопрос

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

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