Как работать с авторизацией пользователей на Q-Chat
При простом добавлении JS кода на сайт будет предоставляться только базовая информация о пользователях.
Если вы хотите, чтобы операторы видели информацию об авторизованных пользователях, необходимо добавить дополнительные параметры в код скрипта или вызывать метод авторизации через JS Api.
Как происходит авторизация?
Мы идентифицируем пользователей по двум параметрам:
- authId — открытый ID пользователя (строка). Он должен быть уникальный для каждого пользователя вашего сайта.
- authKey — специальный ключ-пароль для подтверждения пользователя. Ключ генерируется с помощью вашего секретного ключа, поэтому вы можете быть уверены, что в чат вам пишет именно тот пользователь, которым он представляется.
Для авторизации пользователя добавьте к тегу script следующие атрибуты:
- data-qc-auth-id — укажите ID пользователя
- data-qc-auth-key — сгенерируйте и укажите ключ подтверждения
Например:
<script async src="https://q-chat.ru/dist/widget.js" data-qc-api-key="1234567" data-qc-auth-id="123" data-qc-auth-key="wjSh21"></script>
Либо вызовите метод qchatapi.auth('123', 'wjSh21') согласно js-api.
Как сгенерировать authKey?
Ключ авторизации генерируется на основе authId (первого параметра) и вашего секретного ключа, который можно узнать в панели администратора в разделе Разработчикам.
Ключ генерируется как HMAC-sha256 с вашим секретным ключом от ID пользователя в base64.
Пример NodeJS:
let secret = '12345678';
let userId = '123';
let authKey = createHmac('sha256', secret).update(userId).digest().toString('base64');
Пример PHP:
$secret = '12345678';
$userId = '123';
$authKey = base64_encode(hash_hmac('sha256', $userId, $secret, true));
Дополнительная информация о пользователе
Обычно после авторизации передают дополнительную информацию о пользоватале: Имя, E-mail, телефон и прочие характеристики.
Это можно сделать в методе qchatapi.onReady(), например:
qchatapi.onReady(() => {
qchatapi.setProps({email: 'user@mail.ru', phone: '+7-918-123-45-67', name: 'Валерий'});
});