[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить токен из адресной строки
Diakon
Добрый день.
Столкнулся с проблемой решить которую не знаю как.
Сделал oAuth авторизацию в VK
При редиректе в контроллер возвращается строка с токеном и датой истечения в виде
http://mysite.ru/vk#access_token=XXXXXXX&e...=YYY&user_id=ZZ

Но я не могу разобрать URL т.к. строка параметров начинается с #
когда делаю $_GET - толучаю пустой массив.
Даже $_SERVER не видит параметров за http://mysite.ru/vk
Скажите как быть?

Заранее спасибо!
Игорь_Vasinsky
$s = 'http://mysite.ru/vk#access_token=XXXXXXX&e...=YYY&user_id=ZZ';

preg_match("#access_token\=(.*)&#U", $s, $m);

$token = $m[1];


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Diakon
Цитата (Игорь_Vasinsky @ 27.01.2017 - 09:53)
$s = 'http://mysite.ru/vk#access_token=XXXXXXX&e...=YYY&user_id=ZZ';

preg_match("#access_token\=(.*)&#U", $s, $m);

$token = $m[1];

так весь вопрос в том, как в переменную (в вашем случае $s) передать ссылку.
Это редирект с ВКОНТАКТЕ. Мне надо как то в коде передать строку в переменную но я не знаю как т.к., как я уже писал, из-за того что параметры начинаются с # - ни $_GET ни $_SERVER не видят их
Игорь_Vasinsky
а ты урл в заголовке запроса типа не видишь?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Diakon
Цитата (Игорь_Vasinsky @ 27.01.2017 - 10:52)
а ты урл в заголовке запроса типа не видишь?

Нет, не получаю ничего. Мне то надо url передать в переменную, что б разобрать. А даже $_SERVER не показывает ничего за #
walerus
Diakon
URL ты получаешь как? CURLом или апи возвращает массив данных ? Вот от куда получаешь URL, то и подставляй в переменную $s
Diakon
Цитата (walerus @ 27.01.2017 - 13:05)
Diakon
URL ты получаешь как? CURLом или апи возвращает массив данных ? Вот от куда получаешь URL, то и подставляй в переменную $s

нет, не curlom
там не возможно curl'ом получить. По ссылке переходит пользователь на oAuth на сайт вконтакте, там жмет разрешить на доступы и от туда его, пользователя, редиректит на страницу сайта назад с добавлением токена.
sergeiss
Diakon, тебе надо написать немного кода на JS. Вот такой код:
if (window.location.hash[0] == '#') {
window.location = window.location.origin + window.location.pathname + '?' + window.location.hash.substr(1) + '&' + window.location.search.substr(1);
}

Ну и тут можно чуть больше анализа добавить в ИФе, уже на твоё усмотрение

Твой адрес http://mysite.ru/vk#access_token=XXXXXXX&e...=YYY&user_id=ZZ будет преобразован в http://mysite.ru/vk?access_token=XXXXXXX&e...=YYY&user_id=ZZ и браузер тут же сделает переход на этот адрес. На стороне ПХП разберешь параметры из массива $_GET - они будут уже там :)
"Хвост" '&' + window.location.search.substr(1) я приписал на тот случай, если в строке уже будут гет-параметры, чтобы не потерять их. Ну, то есть, мой код корректно отработает с таким адресом (параметры абстрактные, чтобы показать принцип)
http://mysite.ru/vk?id=2345&name=aaa#acces...=YYY&user_id=ZZ, который будет преобразован в
http://mysite.ru/vk?access_token=XXXXXXX&e...d=2345&name=aaa

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.