Как переписать проверку авторизации vk open api на NODE JS?

Всех приветствую.
Суть следующая: решил прикрутить авторизацию на сайт через 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 */
  }
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 17:04
5000 руб./за проект
29 мар. 2024, в 17:03
3000 руб./за проект
29 мар. 2024, в 16:58
3000 руб./за проект