Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
Fedya
Может быть. Пробуй. Выясни на какой конкретно строчке кода возникает проблема и почему.
Может быть. Пробуй. Выясни на какой конкретно строчке кода возникает проблема и почему.
-
- Сообщения: 8
- Зарегистрирован: 11 сен 2012, 00:19
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
У меня работает с вашим адресом сайта в config.php
а при смене на адрес моего сайта дохожу до страницы где спрашиваются права - жму разрешить и перехожу на callback.php и она пустая. В адресной строке callback.php?code=КОД КОТОРЫЙ Я ПОЛУЧИЛ
и все на index не переходит. Не подскажите почему так происходит
Код: Выделить всё
define("PATH", "http://flapps.ru/example/oauth20/");
и все на index не переходит. Не подскажите почему так происходит
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
heartfulbird
Нужно смотреть на какой строке кода прекращается работа в фале callback.php. Потом нужно разобраться почему именно на этой строке что-то идёт не так как надо.
Нужно смотреть на какой строке кода прекращается работа в фале callback.php. Потом нужно разобраться почему именно на этой строке что-то идёт не так как надо.
-
- Сообщения: 8
- Зарегистрирован: 11 сен 2012, 00:19
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
в callback я получаю CODE , a token не получаю. где дальше докопаться?
тот же charles установил. но у меня честно говоря не получается найти настроек которые описаны в этой теме http://flapps.ru/forum/topic881.html ни для оперы ни для хрома.
и еще возможно ли что я как бы получил токен для вашего сервера. может он пока не истечет мне ничего и не сделать? и разлогиниться никак
тот же charles установил. но у меня честно говоря не получается найти настроек которые описаны в этой теме http://flapps.ru/forum/topic881.html ни для оперы ни для хрома.
и еще возможно ли что я как бы получил токен для вашего сервера. может он пока не истечет мне ничего и не сделать? и разлогиниться никак
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
heartfulbird
что выводит?
Chrome не нужно дополнительно настраивать для Charles. Запустить Chrome и Charles, включить захват трафика - всё должно работать. Но запросы которые отправляет сервер, с помощью Charles ловить не получится.
Код: Выделить всё
$resp = file_get_contents('https://api.vk.com/oauth/access_token?client_id='.CLIENT_ID.'&code='.$_REQUEST['code'].'&client_secret='.SECRET);$data = json_decode($resp, true);print_r($data);
Chrome не нужно дополнительно настраивать для Charles. Запустить Chrome и Charles, включить захват трафика - всё должно работать. Но запросы которые отправляет сервер, с помощью Charles ловить не получится.
-
- Сообщения: 8
- Зарегистрирован: 11 сен 2012, 00:19
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
Вновь пустой экран. Не вывел ничего
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
heartfulbird
Значит и code не передается. Надо тестировать, проверять и проверять. echo и print_r в помощь.
Значит и code не передается. Надо тестировать, проверять и проверять. echo и print_r в помощь.
Код: Выделить всё
<?require_once("config.php"); echo '1<br />';if($_REQUEST['code']) { echo '2 - '; print_r($_REQUEST); echo '<br /><br />'; // получаем access_token $resp = file_get_contents('https://api.vk.com/oauth/access_token?client_id='.CLIENT_ID.'&code='.$_REQUEST['code'].'&client_secret='.SECRET); $data = json_decode($resp, true); echo '3 - '; print_r($data); echo '<br /><br />'; if($data['access_token']){ echo '4'; echo '<br /><br />'; // запишем данные в сессию $_SESSION['access_token'] = $data['access_token']; $_SESSION['user_id'] = $data['user_id']; // переадресуем пользователя на нужную страницу //header('Location: '.PATH.'index.php'); exit(); }}?>
-
- Сообщения: 8
- Зарегистрирован: 11 сен 2012, 00:19
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
Ну я просто даже как в предыдущих примерах ставил echo в разные части скрипта. Попробую еще потестить. Спасибо
-
- Сообщения: 8
- Зарегистрирован: 11 сен 2012, 00:19
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
Я у вас в уроке ошибку нашел. Или просто более актуальная информация. В callback.php в строчке $resp = file_get_contents('https://... надо передавать redirect_uri тоже
Получится так:
теперь работает. В документации VK для серверной авторизации написано может она обновлялась.
Но вот еще вопрос: почему ***выбираем «Standalone-приложение»***. Ведь серверная авторизация для подключения сайтов (Authorization Code Flow) - при создании приложения выбираем "Веб-сайт" .
Получится так:
Код: Выделить всё
$resp = file_get_contents('https://api.vk.com/oauth/access_token?client_id='.CLIENT_ID.'&code='.$_REQUEST['code'].'&client_secret='.SECRET.'&redirect_uri='.PATH.OAUTH_CALLBACK);
Но вот еще вопрос: почему ***выбираем «Standalone-приложение»***. Ведь серверная авторизация для подключения сайтов (Authorization Code Flow) - при создании приложения выбираем "Веб-сайт" .
Re: Серверная авторизация ВКонтакте на базе протокола OAuth 2.0
heartfulbird
Да, не то написал. Надо выбирать «Веб-сайт». В Standalone передается response_type=token, а в авторизации для сайтов response_type=code.
Проверил старый исходник, работает и без указания REDIRECT_URI в callback.php. Может быть поменялось, а может быть и я это тогда упустил.
Да, не то написал. Надо выбирать «Веб-сайт». В Standalone передается response_type=token, а в авторизации для сайтов response_type=code.
Проверил старый исходник, работает и без указания REDIRECT_URI в callback.php. Может быть поменялось, а может быть и я это тогда упустил.