Созданиесайтов

Разработка сайт-визитки, корпоративного сайта, интернет-каталога, интернет-магазина.

Подробнее

Продвижениесайтов

Продвижение сайтов в поисковых системах, SEO оптимизация, контекстная реклама.

Подробнее

Техническаяподдержка

Надёжность сохранности данных, оперативное восстановление данных, обновление модулей.

Подробнее

Полезноедля сайта

Основные актуальные советы и "фишки" для всех типов сайтов по мнению "SPIDERNET".

Подробнее

Регистрация пользователей с помощью сервиса «Loginza»

Главная» Полезное для сайта» Регистрация пользователей с помощью сервиса «Loginza»

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

Для многих CMS систем можно найти в интернете готовые плагины или модули позволяющие интегрировать возможность регистрации через разные соц. сети или почтовые сервисы.

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

С помощью сервиса «Loginza» вы легко и быстро установите возможность регистрации через множество различных систем включая: Facebook, Vkontakte, Twitter, gmail, mail и другие, и используя при этом лишь один сервис Loginza.

Widget являет собою удобный и простой интерфейс авторизации и регистрации пользователей для вашего сайта. Существует несколько вариантов интеграции виджета на страницы сайта, о чем можно узнать непосредственно на сайте logizna.ru.

Весь процесс авторизации можно разбить на этапы:

1. Пользователь выбирает нужный сервис учетных записей.

2. После клика пользователь Loginza направляет пользователя на страницу авторизации на выбранном сервисе.

3. После авторизации Loginza получает и обрабатывает ответ сервиса.

4. Какой бы не был ответ, Loginza перенаправляет пользователя на указанный URL адрес сайта, который запрашивал авторизацию.

5. Вместе с пользователем на сайт перенаправляется методом POST переменная token, которая представляет собой уникальный идентификатор, под которым на Loginza хранятся данные авторизации пользователя.

6. После чего сайт должен сделать запрос к Loginza.API, чтобы запросить результат авторизации пользователя, для этого нужно передать на Loginza значение token.

7. После чего сайт получает данные о пользователе в формате JSON.

8. На основе полученных данных произвести авторизацию или регистрацию пользователя.

Перейдем к примеру.

1. Для начала вам необходимо пройти простую регистрацию на сайте Loginza. После чего перейти в раздел «Мой виджет Loginza» и установить для него необходимые настройки, и потом перейти в подраздел HTML код где вам будет предложен код вставки виджета, которые необходимо разместить у себя на сайте, заменив token_url на свой адрес, это адрес куда пользователь будет перенаправлен, после регистрации.

<script src="http://loginza.ru/js/widget.js" type="text/javascript"><!--script>
 <iframe src="http://loginza.ru/api/widget?overlay=loginza&token_url=http://yoursite.net"  style="width:359px;height:300px;" scrolling="no" frameborder="no"><!--iframe>

2.    После чего на сайте появятся сервисы авторизации. Например: 

 

3.   Кликаем например на авторизацию через Яндекс и появиться следующее окошко:

После этого нас направят на аторизацию на Яндексе и после успешной авторизации, нас направят по адресу указанном в token_url и методом POST отправиться значение token: $_POST[‘token’].

После перенаправления необходимо проверить существует ли token, и если существует, то сразу же запросить результат авторизации на Loginzaи так как мы получим ответ в формате JSON, то используя функцию PHP json_decode() , мы получим объект данных. Например:

If ( isset($_POST[‘token’] )
{
      $user_Info =file_get_contents('http://loginza.ru/api/authinfo?token='.$_POST[‘token’]);
      $user_Info = json_decode($user_Info);
 }  

Если авторизация прошла успешно, то в ответе будет передана информация о пользователе в формате JSON: 

{"identity":"http:\/\/admin.loginza.ru\/","provider":"http:\/\/loginza.ru\/server\/",
"name":{"full_name":"\u0421\u0435\u0440\u0433\u0435\u0439 \u0421\u0435\u0440\u0433\u0435\u0439"},
"nickname":"admin","email":"admin@loginza.ru","gender":"M","dob":"1985-01-31"}

В случае если в ходе авторизации пользователя возникла ошибка, будет возвращен ответ в формате JSON, содержащий код ошибки и ее расшифровку:

{"error_type":"token_validation","error_message":"Empty token value."}

После раскодирования json_decode($user_Info), мы можем получить например email пользователя $user_Info –>email, или $user_Info –>name -> first_name, или $user_Info –>name -> last_name. И другую информацию о пользователе. Подробнее на loginza.ru

Стоить отметить, что данные не всегда одинаковые от всех сервисов, например может не быть email. Это нужно учесть при обработки результатов авторизации.

Для наибольшей безопасности авторизации обязательно используйте передачу параметров id и sig при проверке token. Активируйте режим безопасной проверки token в настройках виджета в разделе Мой виджет Loginza.

 Получить ID виджета и секретный ключ можно в разделе Мой виджет Loginza Вашего аккаунта Loginza.


Добавить комментарий

Комментарии

22:09 | 05.09.2012 Антон

Согласен. Кратко и понятно, описано.

22:08 | 05.09.2012 Евген

Зачетная статья

1