Electronic CHATS
Зарегистрируй себе бесплатно многофункциональный, профессиональный, быстрый чат!

Главная страница | Форум тех. поддержки Впервые у нас? Тогда читай FAQ и Правила! Сделать стартовой | Добавить в избранное

АДМИНКА

Логин:
создать чат
Пароль:
вспомнить


СВЯЗЬ С НАМИ

Администрация

Autodesk admin [показать ICQ]

Помощники

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

Pavel 5006165 helper [?]
Alex 630868614 helper [?]

РАДИО


РЕКЛАМА


«Cackle — единый вход»

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

Единый вход (Single Sign-On) позволяет существующим пользователям сайта оставлять комментарии через виджет Cackle от имени учетной записи пользователя на сайте без необходимости авторизации в виджете с помощью социальной сети (OAuth) или OpenID провайдера.


Как это происходит?


Для настройки единой авторизации в код виджета добавляется переменная mcSSOAuth, значение которой есть зашифрованные данные пользователя и секретный ключ виджета. В случае успешной верификации ключа данные сохраняются в системе, а сам пользователь авторизуется.
Значение переменной должно формироваться на сервере и быть равно:

<JSON данные пользователя в Base64><пробел><MD5 подпись запроса><пробел><текущее время в секундах>

JSON данные пользователя включают в себя следующие атрибуты:
  • id — уникальный идентификатор пользователя
  • name — имя пользователя
  • email (необязательное) — адрес электронной почты
  • avatar (необязательное) — ссылка на аватар
  • www (необязательное) — ссылка на веб сайт

MD5 подпись запроса формируется как:
md5(<JSON данные пользователя в Base64><Site API Key><текущее время в секундах>)

Site API Key — уникальный идентификатор виджета для работы с API. Его можно получить в панели администрирования на вкладке «Виджет», снизу выбрав WordPress плагин.

Выход

Для выхода пользователя, вместо JSON данных пользователя, нужно передавать пустую JSON строчку {}.

Пример использования


К примеру вы администратор ресурса www.example.org. На вашем сайте зарегистрирован пользователь Freeman. Вы хотите, чтобы Freeman мог оставлять комментарии через виджет Cackle под своим аккаунтом, без повторного входа. В этом случае нужно настроить единую аутентификацию, после чего Freeman и все остальные пользователи смогут комментировать от своих собственных учетных записей.

Все что нужно сделать — это сформировать массив с данными пользователя Freeman из нашей БД:
Допустим его id — 7, email — freeman@example.org, avatar — example.org/freeman.png, Site API Key виджета — 123456789, а функция is_user_logged_in() в нашей системе проверяет залогинен ли пользователь.

function cackle_auth(){
    $timestamp = time();
    $siteApiKey = 123456789;
    if (is_user_logged_in()){
       $user = array(
          'id' => '7',
          'name' => 'Freeman',
          'email' => 'freeman@example.org',
          'avatar' => 'http://example.org/freeman.png'
    );
        $user_data = base64_encode(json_encode($user));
    }
    else{
        $user = '{}';
        $user_data = base64_encode($user);
    }
    $sign = md5($user_data . $siteApiKey . $timestamp);
    return "$user_data $sign $timestamp";
}

Функция cackle_auth возвращает строку, которую необходимо поместить в то место, где находится код виджета:
<script type="text/javascript">
    var mcSSOAuth = '<?php echo cackle_auth(); ?>';
    // код виджета
</script>


Кстати говоря, в новой версии плагина для WordPress, единая авторизация уже реализована. Вы можете включить её выставив галочку в настройках.
Дата публикации: 2012-11-09


СЧЁТЧИКИ

создать чат бесплатно - - - - Топ100 - Хостинг
Design by Autodesk
Копирование любых материалов с сайта, без установки ссылки на echats.ru - ЗАПРЕЩЕНО!
Electronic CHATS™ Company | Copyright © 2009-2017 | All rights reserved