Tolstoy Comments обзавелся технологией единого входа (SSO)

Технология единого входа (англ. Single Sign-On) – это технология при которой, уже зарегистрированный на вашем сайте пользователь, автоматически оказывается авторизованным в виджете Tolstoy Comments. Т.е. ему не придется проходить отдельную регистрацию.

Большим площадкам с обширной клиентской базой, такое придется по вкусу.

SSO работает на тарифе PRO и PRO+. После оплаты лицензии в административной панеле, в разделе «управление» включите чекбокс «Единая авторизация» и подготовьте свой сайт согласно api.


Дальше информация для технически подготовленных людей.

Для авторизации виджета нужно передать токен авторизации в параметре sso:

/// html
<script type="text/javascript">
    window.tolstoycomments.config = { 
        sso: 'ТОКЕН ДЛЯ АВТОРИЗАЦИИ'
    };
</script>

Пример формирования токена для авторизации на Node.js:

/// Node.js
var arr = {
	id: "id0", // произвольная уникальная строка (50 знаков максимум) - обязательный параметр
	nick: "Иванов Иван", // имя пользователя (50 знаков максимум) - обязательный параметр
	email: "temp@temp.temp", // почта (250 знаков максимум) - необязательный параметр
	avatar: "https://static.tolstoycomments.com/ui/ac/b1/fa/acb1faad-2fad-441a-b789-da57f5317399.png" // ссылка на аватар - необязательный параметр
};
var key = "КЛЮЧ ДОСТУПА К API ИЗ НАСТРОЕК САЙТА";

var userdata = window.btoa(unescape(encodeURIComponent(JSON.stringify(arr))));
var microtime = Date.now();
var signtext = userdata + key + microtime.toString();
var sign = md5(signtext);
var sso = userdata + " " + sign + " " + microtime;

Пример формирования токена для авторизации на PHP:

/// PHP
<?php
    $arr = array(
        'id' => 'id0',
        'nick' => 'Иванов Иван',
        'email' => 'temp@temp.temp',
        'avatar' => 'https://static.tolstoycomments.com/ui/ac/b1/fa/acb1faad-2fad-441a-b789-da57f5317399.png'
    );
    $key = "КЛЮЧ ДОСТУПА К API ИЗ НАСТРОЕК САЙТА";
    $userdata = base64_encode(json_encode($arr));
    $timestamp = round(microtime(true) * 1000);
    $sign = md5($userdata . $key . $timestamp);
    echo "$userdata $sign $timestamp";
?>