Хроники лаборатории
Логин из вконтакта. Как это работает.

Недавно для простоты комментирования я сделал авторизацию из vkontakte.ru. Для этого потребовалось не так много ресурсов и времени, сейчас для заинтересованных покажу, как это делается.

Во-первых, надо создать свое приложение. Можно не загружать SWF-файл, достаточно получить так называемый «секретный ключ» и идентификатор. Это делается вконтакте, на вкладке с приложениями.

Во-вторых, куда-то на сайте воткнуть кнопку «войти вконтакте» (я ее вынес на отдельную страницу, нечего скриптами страницы блога нагружать).

Под приложение после логина установится куки вида vk_app_ID-приложения. Осталось только ее «поймать» и разобрать:

$vk_auth=trim($_COOKIE["vk_app_ID-приложения"]);
$secret_id='секр-ключ-приложения';
$vk=explode("&",$vk_auth);
$md5_vk=md5($vk[0].$vk[1].$vk[2].$vk[3].$secret);
list($a,$vk_login)=explode("=",$vk[1]);
$vk=explode("=",$vk[4]);

if ($md5_vk==$vk[1]) { // если подпись сходится...
$api_id = "ID_приложения";
$method = "getProfiles";
$uids=$vk_login;
$v="3.0";
// сигнатура для проверки
$sig=md5("api_id=".$api_id."method=".$method."uids=".$uids."v=".$v.$secret_id);
$e="http://api.vkontakte.ru/api.php?api_id=".$api_id."&method=".$method."&uids=".$uids."&v=".$v."&sig=".$sig;

// посылаем запрос, чтобы получить данные о пользователе
$p=file_get_contents($e);
}


Все, в принципе, описано в документации, но там не указан один забавный нюанс: параметры нужно передавать в алфавитном порядке. Почему - без понятия. Но это факт, я часа два получал от Вконтакта ошибку, пока мне не пришла в голову бредовая мысль выстроить параметры по алфавиту. В следующий раз я сделаю логин из Фейсбука. Надеюсь, там такого шаманства не будет.


RSS HTML рубрики: приемчикиjuick twitter facebook вконтакте

Случайные записи впридачу:
Черная... Что? (допридумано)
Искорки на крови и Бормотунчики из песка (библиотека)
Футболки. Выбор эскиза. (футболки)

Постников Вася (17 дек 2010г, 16:01) [ссылка на комментарий]

ееее!! секрет раскрыт:) бугога) вмемориз на лирушечке отправил Ж)
спасибо за инфо ^_^
Кобзарёв Михаил (14 янв 2011г, 18:15) [ссылка на комментарий]

Шаманство. Чем parse_url не устроила?
Откуда вы?   

Войти через loginza
Оставлять комментарии могут только
имеющие свой ЖЖ-, ЛИру-аккаунт или
еще какой openID (как так?).
Подписаться


Рубрики:

жизненное
аудио-я
видеомонтаж
фотоохота
ремонт
стихи
рассказы
синематограф
библиотека
фонотека
точка зрения
FAQ
приемчики
придумалось
ожидания-прогнозы
допридумано
рингтоны
это я так шучу
обои
микрозарисовки
опасный Интернет
я в печати
поездки-тусовки
смехоспам
мой код
футболки
игродром
подводная жизнь
сайтоводство
программы
персоны
LI.ru
аватарки
курсоры


Разное:

Полка с фильмами
Книжная полка
Полка с играми
Фотоальбом
Избранное


Календарь записей

2017 (10)
2016 (10)
2015 (3)
2014 (12)
2013 (10)
2012 (17)
2011 (84)
2010 (172)
2009 (228)
2008 (263)
2007 (154)
2006 (4)
2005 (1)
2004 (1)
2002 (1)
2001 (9)
2000 (9)
1999 (1)
© сайт разработан и поддерживается мной.