[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Аутентификация через соц сеть VK
Hunter0k
Здравствуйте, есть готовый код аутентификации через соц сеть VK. Ставил его на сайт, при авторизации Code и token приходят как положено, только у меня не получается вывести данные пользователя на индексной странице. Вот весь код:

index.php

<?
session_start();
header("Content-Type:text/html;charset='UTF-8'");
?>
<!DOCTYPE HTML>
<
html>
<
head>
<
meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<
title>Тестовый сайт</title>
</
head>
<
body>
<
h2>Контент сайта</h2>
<
p>
<
strong><a href="auth.php">Авторизация</a></strong>
</
p>
<?
if($_SESSION['user']) {
$user = $_SESSION['user']->response[0];
//print_r($user);
}
?>
<img src="http://cs9918.vk.me/u8101947/d_8e04ab93.jpg">
<
p><?php echo $user->first_name;?></p>
<
p><?php echo $user->last_name;?></p>
</
body>
</
html>


config.php

<?
session_start();
define("APP_ID",'4193143');
define("APP_SECRET",'VDoBLRrrjHVPuL9Wxvo4');
define("REDIRECT_URI",'http://avtomirock.esy.es/auth.php');
define("URL_ACCESS_TOKEN",'https://oauth.vk.com/access_token');
define("URL_AUTH",'http://oauth.vk.com/authorize');
define("URL_GET_USER",'https://api.vk.com/method/users.get');
?>


auth.php

<?
require "Auth_Vk.php";
$o = new Auth_Vk();
if(!$_GET['code']) {
$query = "client_id=".APP_ID."&scope=offline&redirect_uri=".REDIRECT_URI."&response+type=code";
$o->redirect(URL_AUTH."?".$query);
}
if($_GET['code']) {
//echo $_GET['code'];
$o->set_code($_GET['code']);
$res = $o->get_token();

if($res) {
$o->get_user();
}
else {
exit($_SESSION['error']);
}
}

if($_GET['error']) {
exit($_GET['error_description']);
}
?>


Auth_Vk.php

<?
class
Auth_Vk {
private $code;
private $token;
private $uid;

public function __construct() {
require "config.php";
}

public function set_code($code) {
$this->code = $code;
}

public function set_token($token) {
$this->token = $token;
}

public function set_uid($id) {
$this->uid = $id;
}

public function redirect($url) {
header('HTTP/1.1 301 Moved Permanently');
header("Location:".$url);
exit();
}

public function get_token() {
if(!$this->code) {
exit("Не верный код");
}

$ku = curl_init();
$query = "client_id=".APP_ID."&client_secret=".APP_SECRET."&code=".$this->code."&redirect_uri=".REDIRECT_URI;
curl_setopt($ku,CURLOPT_URL,URL_ACCESS_TOKEN."?".$query);
curl_setopt($ku,CURLOPT_RETURNTRANSFER,TRUE);

$result = curl_exec($ku);
curl_close($ku);

$ob = json_decode($result);
if($ob->access_token) {
$this->set_token($ob->access_token);
$this->set_uid($ob->user_id);
return TRUE;
}
elseif($ob->error) {
$_SESSION['error'] = "Ошибка";
return FALSE;
}
}


public function get_user() {
if(!$this->token) {
exit('Wrong code');
}

if(!$this->uid) {
exit('Wrong code');
}

$query = "uids=".$this->uid."&fields=first_name,last_name,nickname,screen_name,sex,bdate,city,country,timezone,photo,photo_medium,photo_big,has_mobile,rate,contacts,education,online,counters&access_token=".$this->token;
//echo $query;

$kur = curl_init();
curl_setopt($kur, CURLOPT_URL, URL_GET_USER."?".$query);
curl_setopt($kur, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($kur, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($kur,CURLOPT_RETURNTRANSFER,TRUE);

$result2 = curl_exec($kur);
curl_close($kur);
$_SESSION['user'] = json_decode($result2);
$this->redirect("http://avtomirock.esy.es");
}
}

?>

Быстрый ответ:

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