Авторизация через API, получение сервером данных юзера

Создание Desktop-приложений, виджеты ВКонтакте для сайтов и публичных страниц, OAuth 2.0, Open API, Standalone

Авторизация через API, получение сервером данных юзера

Сообщение nikita-kun » 19 дек 2010, 14:53

Здравствуйте!

У меня есть сайт со своей регистрацией
я хочу заменить авторизацию на контактовскую

я уже сделал кнопку, если ты залогинен то сайт работает
однако мне нужно чтобы сайтом могли пользоваться члены одной группы вконтакте и никто другой

получается мне надо чтобы обработчик пхп мог получить информацию о юзере из апи непосредственно из вконтакте или как то так
проверить принадлежность к группе или тупо хотя бы посмотреть айди юзера и поискать его в списке

  1. <?php
  2. function authOpenAPIMember() {
  3.   $session = array();
  4.   $member = FALSE;
  5.   $valid_keys = array('expire', 'mid', 'secret', 'sid', 'sig');
  6.   $app_cookie = $_COOKIE['vk_app_мой_айди***'];
  7.   if ($app_cookie) {
  8.     $session_data = explode ('&', $app_cookie, 10);
  9.     foreach ($session_data as $pair) {
  10.       list($key, $value) = explode('=', $pair, 2);
  11.       if (empty($key) || empty($value) || !in_array($key, $valid_keys)) {
  12.         continue;
  13.       }
  14.       $session[$key] = $value;
  15.     }
  16.     foreach ($valid_keys as $key) {
  17.       if (!isset($session[$key])) return $member;
  18.     }
  19.     ksort($session);
  20.  
  21.     $sign = '';
  22.     foreach ($session as $key => $value) {
  23.       if ($key != 'sig') {
  24.         $sign .= ($key.'='.$value);
  25.       }
  26.     }
  27.     $sign .= 'сдесь секретный ключ';
  28.     $sign = md5($sign);
  29.     if ($session['sig'] == $sign && $session['expire'] > time()) {
  30.       $member = array(
  31.         'id' => intval($session['mid']),
  32.         'secret' => $session['secret'],
  33.         'sid' => $session['sid']
  34.       );
  35.     }
  36.   }
  37.   return $member;
  38. }
  39.  
  40. ?>

этот инклуд я вставляю на какую нибудь php страницу и вызываю функцию

  1. $member = authOpenAPIMember();
  2.  
  3. if($member == FALSE) {
  4.   /* Пользователь ne авторизирован в Open API */
  5. echo('$member == false ne avtorizirovan');
  6. } else {
  7.   /* Пользователь авторизирован в Open API, делаем свои дела */
  8. echo('$member == true, avtorizirovan');
  9. /* всякое разное..... */
  10. }
  11.  


теперь основной вопрос
как мне узнать хотя бы айди пользователя
чтобы можно было например

  1. $member = authOpenAPIMember();
  2.  
  3. if($member == FALSE) {
  4.   /* НЕЛЮДИ */
  5. } else
  6. if($member == TRUE && ID_VKONTAKTE==123467) {
  7.   /* АДМИН ДЕТЕКТЕД! */
  8. } else {
  9. /* ОБЫЧНЫЕ ЮЗЕРЫ */
  10. }
  11.  


как серверу получить данные юзера?

вот ссылка
http://22105.ru
nikita-kun

 
Автор темы
Сообщения: 2
Зарегистрирован: 19 дек 2010, 14:39
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Авторизация через API, получение сервером данных юзера

Сообщение nikita-kun » 20 дек 2010, 18:12

всем спасибо :|
проблема решена :roll:
nikita-kun

 
Автор темы
Сообщения: 2
Зарегистрирован: 19 дек 2010, 14:39
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Авторизация через API, получение сервером данных юзера

Сообщение sersche » 20 дек 2010, 18:38

может оформишьс свой труд как урок и выложишь? было бы очень даже хорошо..
доброе утро, мир
sersche
FL Team
FL Team
 
Сообщения: 598
Зарегистрирован: 11 май 2010, 13:45
Благодарил (а): 28 раз.
Поблагодарили: 16 раз.


Вернуться в Desktop-приложения, виджеты ВКонтакте, OAuth



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron