Авторизация через VK получение почты
1.
Андрей (29.04.2016 / 16:57)
Есть такой код - тут все в порядке, адрес почты получаем в случае если пользователь разрешает ее отправить.
<?php
$client_id = // ID приложения
$client_secret = // Защищённый ключ
$redirect_uri = // Адрес сайта
if (isset($_GET['code'])) {
$result = false;
$params = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'code' => $_GET['code'],
'redirect_uri' => $redirect_uri
);
$token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);
if (isset($token['access_token'])) {
$params = array(
'user_id' => $token['user_id'],
'email' => $token['email'],
'fields' => 'uid,first_name,bdate,photo_200_orig,sex',
'access_token' => $token['access_token']
);
$_SESSION['email'] = $token['email'];
$userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
if (isset($userInfo['response'][0]['uid'])) {
$userInfo = $userInfo['response'][0];
$result = true;
}
}
if ($result) {
echo $userInfo['uid'];
echo $userInfo['first_name'];
echo $userInfo['photo_200_orig'];
echo $userInfo['sex'];
echo $_SESSION['email'];
}
}
?>
Если же запретили отправлять почту, в строчке
<?php
'email' => $token['email'],
?>
получается ошибка.
Notice: Undefined index: email
Как правильно сделать, чтобы при запрете отправки почты, пользователя перекидывало на главную сайта?
2.
/7o/loTeH4I1k (29.04.2016 / 17:08)
дык... if(empty($token['email'])) header('Location: /');
после получения данных
3.
Андрей (29.04.2016 / 17:34)
anonymouse (29 Апреля 2016 / 17:08)
дык... if(empty($token['email'])) header('Location: /');
после получения данных
Сразу не дошло. Спасибо за подсказку.
<?php
if (isset($token['access_token']) && isset($token['email'])) {
} else {
redirect('/index.php');
}
?>
Делаю для ротора, функция redirect('/index.php');
4.
/7o/loTeH4I1k (01.05.2016 / 09:07)
Я бы не стал делать isset, ибо значения в виде ноля в данном случае не очень устраивают, и не относятся к легитимным
5.
Андрей (01.05.2016 / 09:19)
4.
anonymouse, хорошо, понял. Спасибо!
6.
Андрей (01.05.2016 / 20:38)
anonymouse (1 Мая 2016 / 09:07)
Я бы не стал делать isset, ибо значения в виде ноля в данном случае не очень устраивают, и не относятся к легитимным
Результат с empty полностью наоборот. Если запретить отправку почты, то пользователь входит и почта не приходит, если же разрешить - то тут получается ошибка. В общем isset работает правильно и так как мне нужно..
7.
Андрей (01.05.2016 / 20:52)
А вот все прописал !empty теперь работает )
URL:
https://visavi.net/topics/42970