Авторизация ВК

Статус
В этой теме нельзя размещать новые ответы.

molatok

Профессор
Регистрация
13 Июл 2008
Сообщения
224
Реакции
38
Нашел офигенную штуку и просто не мог не поделиться.
Вдруг кто не знает :)
Наверное, все читали вконтактике про возможность входа на сайты с помощью ВК OpenAPI
Так вот. На друпале это реализуется парой кликов.

Скачать модуль можно на drupal.org. Демо работы модуля доступно, например, тут: Для просмотра ссылки Войди или Зарегистрируйся.

Update. Доступна четвертая альфа-версия модуля. Из ВКонтакта подтягивается аватар пользователя (администратор в настройках модуля может задать аватарку какого из трех размеров, предоставляемых ВКонтактом, использовать). Каждому созданному модулем пользователю может быть назначена особая роль.

В пятой альфа-версии модуля планирую добавить обновление статусов.
Работа модуля

Это пока первая и очень простая реализация модуля, работает он так:

1. после нажатия пользователем кнопки "войти вКонтакте" модуль получает необходимые данные от сервера вКонтакте.
2. Далее модуль проверяет есть ли в базе данных Друпала пользователь, связанный с именем, полученным от вКонтакте:
* если его нет, то создается новый пользователь и связывается с id пользователя ВКонтакте. Внимание! Важная деталь. Если в базе данных есть пользователь с именем не связанным с учетной записью вКонтакте и из вКонтакте приходит пользователь с таким же именем, то такие две учетные записи не будут связаны, для имени нового пользователя будет просто добавлен суффикс _N, где вместо N будет подставлено число.
* если связанный с учетной записью ВКонтакте пользователь есть, то будет использована найденная учетная запись.
3. Выбранный пользователь авторизуется в системе.
4. ВКонтакте не отдает адрес электронной почты, по этому модуль предлагает новому пользователю указать свой e-mail в настройках своего нового аккаунта.

Установка и настройка модуля

1. Первым делом во ВКонтакте нужно создать приложение типа "Веб-сайт", для этого нужно перейти по ссылке: Для просмотра ссылки Войди или Зарегистрируйся и нажать на кнопку "Подключить сайт".
2. В настройках созданного приложения нужно указать адрес сайта (Для просмотра ссылки Войди или Зарегистрируйся) и базовый домен (example.com), а также получить ID приложения и защищенный ключ, все эти четыре параметра нужно будет указать в настройках модуля vk_openapi.
3. Теперь нужно скачать модуль, если вы этого еще не сделали, распаковать в папку sites/all/modules и включить его стандартными средствами Друпала.
4. После активации модуля, на странице admin/settings/vk_openapi вы должны указать параметры созданного ранее приложения ВКонтакте.

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

<div id="vk_login" style="margin: 0 auto 20px auto;" onclick="doLogin();"></div>


который будет заменен на кнопку.

Я старался сделать этот модуль максимально простым для посетителей сайта — авторизоваться в системе можно всего одним кликом. Мне, например, сильно не нравится реализация Facebook Connect для Друпла тем, что после нажатия кнопки "Connect" пользователя заставляют еще заполнить некоторые поля в форме регистрации. По этому данные от ВКонтакте получаются только один раз, при первом входе в систему, и используются только имя и фамилия пользователя. Теоретически, эти данные можно периодически обновлять, также есть возможность получить данные о фотографиях пользователя и его аватарке, его друзьях изменениях статусов, связать логаут на Друпал-сайте с логаутом из ВКонтакте и т.п. Интересно знать нужен ли кому-нибудь подобный функционал или достаточно того, что уже есть сейчас?

Автор модуля - Ромка Для просмотра ссылки Войди или Зарегистрируйся

PS - модуль работает сразу, никаких подтверждений не нужно
PPS у кого не получится - не грешите на модуль.
Пример -


PS - иногда выползают ошибку, но, вроде, автор модуля его постоянно пилит
 
  • Нравится
Реакции: farm
что бы не регистрироваться, а представляться сайту акаунтом контакта
я правильно понимаю - этот модуль будет мне сливать информацию о пользователях в контакте?
 
я правильно понимаю - этот модуль будет мне сливать информацию о пользователях в контакте?
это уже нужно дополнительно реализовывать в модуле, а так просто к примеру можно оставлять комментарии не регаясь на самом сайте ,а используя авторизацию вконтакте
 
И, вероятно, парсить контакт и делать ГС-форумы :).
 
  • Заблокирован
  • #7
стоит устанавливать виджет комментов? Слышал что они слишком баговые и могут сайт положить
 
  • Заблокирован
  • #8
Что за бред?
Виджет написан на JS, никакой пользы и вреда не несёт. ИМХО
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху