Всех приветствую.
Суть следующая: решил прикрутить авторизацию на сайт через VK, серверная часть крутится на node js.
С клиентской частью все понятно, но вот как проверить авторизацию на сервере?
В документации VK дан пример функции на php, собственно на php реализовать все это получилось, а вот на ноде проблема...
Если у кого-то есть решение этого недуга, поделитесь пожалуйста.
Вот функция, которую дает VK:
function authOpenAPIMember() {
$session = array();
$member = FALSE;
$valid_keys = array('expire', 'mid', 'secret', 'sid', 'sig');
$app_cookie = $_COOKIE['vk_app_'.APP_ID];
if ($app_cookie) {
$session_data = explode ('&', $app_cookie, 10);
foreach ($session_data as $pair) {
list($key, $value) = explode('=', $pair, 2);
if (empty($key) || empty($value) || !in_array($key, $valid_keys)) {
continue;
}
$session[$key] = $value;
}
foreach ($valid_keys as $key) {
if (!isset($session[$key])) return $member;
}
ksort($session);
$sign = '';
foreach ($session as $key => $value) {
if ($key != 'sig') {
$sign .= ($key.'='.$value);
}
}
$sign .= APP_SHARED_SECRET;
$sign = md5($sign);
if ($session['sig'] == $sign && $session['expire'] > time()) {
$member = array(
'id' => intval($session['mid']),
'secret' => $session['secret'],
'sid' => $session['sid']
);
}
}
return $member;
}
$member = authOpenAPIMember();
if($member !== FALSE) {
/* Пользователь авторизован в Open API */
} else {
/* Пользователь не авторизован в Open API */
}