Вспомнилось, как то натыкался в гугле на тему с какого то игрового форума (то ли по вовке, то ли по пв), где человек 30 общими усилиями пытались разобраться в том, как прикрутить oAuth-авторизацию через ВК к своим сайтам. Улыбнуло.
Тут я такого материала не наблюдал, так что объясню.
oAuth-авторизация помогает нам быстро и безболезненно регистрировать \ авторизовывать юзеров у нас на сайте, без лишних заморочек как для нас, так и для них. Тыкнул кнопочку - и всё. И никакого геморроя. Замечательно же? Я думаю, да.
Красота-удобство же.
Тут ларчик открывается очень даже просто, и это реально сделать буквально за 5 минут, не прибегая ни к каким сервисам типо юлогин или логинза.
Приступим.
Первый шаг - нужно завести приложение ВК.
Для этого нужно перейти по этой ссылке.
Перед нами встанит страничка разработчика. нас там не интересует ничего, кроме кнопки "создать приложение".
Тырчем на нее, подтверждаем, что мы не бот (через смс или моб.устройство).
Тут нас просят выбрать тип приложения. Насколько помню, есть варианты: standalone-приложение, веб-сайт, и еще что то.
Выбираем вариант веб-сайт
---------------------------------
Второй шаг - настройка приложение и начало кода.
Как только мы подтвердили, что мы не верблюд, перед нами открывается страничка настройки приложения:
Идём в подпункт меню настройки
Там нам нужно подсмотреть ID приложения:
Итак, теперь идем к нашему коду.
В <head> шаблона сайта кладём следующее:
Код
<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?34">
// Инициализация прилки
VK.init({apiId: ID нашего приложение, которое мы только что запилили});
</script>
В том месте, где по замыслу неавторизованному юзеру должна выводиться кнопка "Войти через ВКонтакте" кладём вот это
Код
<p>Для доступа к сервисам сайта необходимо авторизоваться</p>
<div id="vk_auth"></div>
<script type="text/javascript">
VK.Widgets.Auth("vk_auth", {width: "300px", authUrl: \'vklogin.php?\'});
</script>
</div>
Сохраним, обновим страничку, и, вуаля:
Тут больше ничего делать не надо.
Идём далее.
---------------------------------
Шаг третий - примитивный обработчик
Теперь при нажатии на кнопку "Войти через ВКонтакте" пользователю будет выкидывать стандартное диалоговое окно oAuth авторизации ВК, с запросом на разрешение доступа.
Если ты, мой юный друг, внимательно читал и смотрел всё, что я написал, то должен был заметить, что в коде кнопочки есть адрес - vklogin.php
Это имя скрипта, который будет обрабатывать нашу авторизацию.
После всех манипуляций пользователя перекинет именно туда.
Данные прийдут с GET-запросом, и будут иметь вид:
Код
Array ( [uid] => Ид в ВК
[first_name] => Имя
[last_name] => Фамилия
[photo] => ссылка на аватар большой
[photo_rec] => ссылка на аватар маленький
[hash] => уникальный хеш )
Оперируя этими данными уже делаем проверки - есть ли юзер с таким вк идом в базе, или нет. Если нет - добавляем и авторизуем. Если есть - просто авторизуем.
Свобода действий.
Хеш проверяется следующим образом:
Код
$appID = "ID приложения";
$uid = "ID юзера VK";
$secret = "Секретный ключ приложения";
$ourhash = md5($appID.$uid.$secret); // Выведет правильный хеш, который должен был прийти вместе с юзером. Всё, что не совпадает с этим хешем - ложь