Документация
Синхронизация пользователей (SSO)

Система HyperComments позволяет осуществить синхронизацию пользователей вашего сайта с пользователями HyperComments, это означает, что авторизированные пользователи Вашего сайта могут оставлять комментарии от своего имени.

Для синхронизации пользователей необходимо:

  1. В административном разделе сайта в разделе "Настройки" -> "Настройка API" ввести "Секретный ключ" и поставить галочку в поле "Авторизация с помощью вашего сайта".
    Для пользователей Wordpress секретный ключ генерируется автоматически при активации плагина и редактировать его нельзя.
  2. В код вставки виджета добавить параметр auth (см.подробнее)
Формирование значения параметра auth

В параметре auth кода вставки виджета комментариев передается:

  1. Информация о Вашем пользователе, которого необходимо авторизовать в HyperComments
  2. Сигнатура (цифровая подпись)
  3. Время unixtime по UTC

Эти параметры строки auth должны быть разделены . Итоговая строка должна иметь вид:

"USERINFO_TIME_SIGNATURE"

,где

  • USERINFO - информация о пользователе
  • TIME - текущее время в формате unixtime по UTC
  • SIGNATURE - сигнатура
Формирование массива данных о пользователе (USERINFO)

Для того чтобы сформировать массив данных о Вашем пользователе необходимо сформировать JSON строку с данными о пользователе

{"nick":"USER_NICK","avatar":"USER_AVATAR","id":"USER_ID","email":"USER_EMAIL","profile_url":"USER_PROFILE_URL"}

,где

  • nick - имя пользователя
  • avatar - адрес аватарки пользователя
  • id - id пользователя у Вас в системе
  • email - почта пользователя
  • profile_url - ссылка на профиль пользователя у Вас в системе

Далее необходимо кодировать эту JSON строку используя алгоритм Base64.

Формирование сигнатуры (SIGNATURE)
Сигнатура формируется как md5 хэш от склеенной строки "Секретный ключ"+"Информация о пользователе"+"Время":
md5(SECRETKEY+USERINFO+TIME)
Пример формирования значения параметра auth на PHP

Пример массива данных о клиенте

$user = array(
  'nick'        => 'Dmitry',
  'avatar'      => 'http://graph.facebook.com/412831238798731/picture',
  'id'          => '18',
  'email'       => 'usermail@gmail.com',
  'profile_url' => 'http://mysite.com/profile/1'
);

Формирование строки auth:

$time        = time();
$secret      = "SECRETKEY"; // Секретный ключ, который Вы ввели в административной панели сайта.
$user_base64 = base64_encode( json_encode($user) );
$sign        = md5($secret . $user_base64 . $time);
$auth        = $user_base64 . "_" . $time . "_" . $sign;

Передаем значение параметра auth в виджет комментариев:

_hcwp.push({widget:"Stream", widget_id: WIDGET_ID, auth: <?php echo $auth;?>});