Зачем нужен JWT?
История переписки в виджете хранится в localStorage браузера клиента. Если посетитель зайдёт на сайт из другого браузера или устройства, он не увидит предыдущих сообщений. Чтобы это исправить, можно настроить синхронизацию переписки в виджете с помощью уникального идентификатора — User Token.
Схема работы
- Пользователь авторизуется на сайте клиента.
- Сервер клиента генерирует JWT с данными пользователя, подписанный секретным ключом из личного кабинета Jivo.
- Токен передаётся в браузер и отправляется в виджет через
jivo_api.setUserToken(token). - Jivo проверяет подпись и синхронизирует историю переписки с этим идентификатором.
// На фронтенде — вызвать после загрузки виджета
function jivo_onLoadCallback() {
jivo_api.setUserToken('<токен с сервера>');
}
Инструмент 1: Декодер JWT
Вставьте любой JWT-токен — он будет разобран на три части прямо в браузере. Секретный ключ не нужен.
Инструмент 2: Верификатор подписи (HS256)
Проверьте, что токен подписан правильным секретным ключом. Это тот же ключ, что указан в Jivo → Настройки → Интеграции → JWT.
Для канала на этой странице user secret задан как: X|h"33)Kn%19VejL2~4-5c3!Sm6\:%[<,XCg[6=Iun0Y — используйте его для проверки и генерации токенов на этой странице.
Инструмент 3: Генератор токена (HS256)
Заполните данные пользователя, укажите секретный ключ — получите готовый JWT для передачи через jivo_api.setUserToken().
jivo_api.setUserToken(token)
Вставьте токен в скобки метода и нажмите кнопку — метод будет вызван на живом виджете этой страницы.
Реализация на вашем сайте
Для интеграции вам потребуется реализовать генерацию JWT-токена на серверной стороне вашего сайта. Токен подписывается по алгоритму HS256 с использованием секретного ключа, который вы задаёте в личном кабинете Jivo: Управление → Каналы связи → Настроить → Настройки интеграции для разработчиков.
Минимальный payload должен содержать поле id — уникальный идентификатор пользователя в виде строки, статичный для каждого посетителя (например, ID из вашей базы данных). Дополнительно можно передавать name, email, phone, а также стандартные поля iat и exp.
JWT — открытый стандарт (RFC 7519). Готовые библиотеки для всех популярных языков (PHP, Node.js, Python, Go, Java и др.) и интерактивный отладчик доступны на jwt.io.