Объяснение единого входа

ChatBro позволяет настроить авторизацию в чате так, чтобы использовалась информация сайта о пользователе. Например, ник, аватар, путь до профиля. Для этого необходимо передать ChatbroLoader дополнительные параметры.

ChatbroLoader({
encodedChatId: Ваш encodedChatId, //Или вы можете использовать другие идентификаторы, такие как chatPath или chatAlias
siteDomain: Ваш домен,
siteUserExternalId: Id пользователя на сайте,
siteUserFullName: Имя пользователя или ник,
siteUserFullNameColor: Цвет для имени пользователя,
siteUserAvatarUrl: Какой-либо путь до аватара,
siteUserProfileUrl: Путь до профиля пользователя
});

Пример

ChatbroLoader({
encodedChatId: '9czk',
siteDomain: 'chatbro.com',
siteUserExternalId: '652',
siteUserFullName: 'Brad Pitt',
siteUserFullNameColor: '#d81818d9',
siteUserAvatarUrl: '//www.chatbro.com/images/brad_pitt.jpg',
siteUserProfileUrl: '//www.chatbro.com/profile/652'
});

Минимальный набор параметров для аутентификации пользователя состоит из siteDomain, siteUserExternalId, siteUserFullName. Параметры siteUserAvatarUrl, siteUserProfileUrl и siteUserFullNameColor необязательны.

Настройка авторизации

В редакторе чата вы можете комбинировать разные методы авторизации или вовсе все отключить и оставить только авторизацию через сайт. Попробуйте написать что-нибудь в чат ниже.

Также можно отключить тип входа, использующий передачу параметров авторизации. Это рекомендуется сделать, если вы не используете логин через сайт. В приведенном ниже примере, параметры siteDomain, siteUserExternalId и siteUserFullName передаются в ChatbroLoader, но при этом единый вход отключен. Попробуйте отправить сообщение.

Защита от спуфинга

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

Теперь, чтобы иметь возможность отправлять сообщения, необходимо передать дополнительный параметр - signature.

Сигнатуры рассчитываются на стороне сервера на основе переданных параметров. Порядок параметров при расчете очень важен.

signatureDataParts =
siteDomain
+ siteUserExternalId
+ siteUserFullName
+ siteUserAvatarUrl
+ siteUserProfileUrl
+ siteUserFullNameColor
+ permissions.join('')
+ secretKey;

md5(signatureDataParts);

Свой секретный ключ вы можете найти в редакторе чата, в первом блоке. Параметры siteDomain и secretKey необходимы всегда. Остальные нужно игнорировать, если вы не используете их в ChabroLoader.

Пользователя можно сделать модератором. Для этого этому пользователю необходимо добавить в ChatbroLoader параметр под названием permissions. Permissions - это массив разрешенных методов модерации. Используется только совместно с параметром signature. Возможные значения: ban (возможность банить пользователей), delete (возможность удалять сообщения). Важно отметить, что при таком способе добавления модератора, пользователь не будет указываться в качестве модератора в сообщениях, хотя сможет модерировать. Исправить эту ситуацию поможет параметр siteUserFullNameColor. Например: permissions: ['ban', 'delete']

Если параметр signature не передается или передается, но при этом рассчитан неправильно, сообщение не отправится. В чате, в этом случае, отобразится соответствующее предупреждение.

Если вы не хотите, чтобы чат устанавливался на другие сайты, кроме вашего, то отключите ползунок «Показывать чат в случае ошибки подписи».

Примеры правильно переданной signature

Передается полный набор параметров для авторизации пользователя

ChatbroLoader({
encodedChatId: '12UNE',
siteDomain: 'chatbro.com',
siteUserExternalId: '653',
siteUserFullName: 'Johnny Depp',
siteUserFullNameColor: 'grey',
siteUserAvatarUrl: '//www.chatbro.com/images/johnny_depp.jpg',
siteUserProfileUrl: '//www.chatbro.com/profile/653',
// md5('chatbro.com653Johnny Depp//www.chatbro.com/images/johnny_depp.jpg//www.chatbro.com/profile/653grey40657820-0ba1-4e1d-b2f6-b2a40fd09263');
signature: 'a891505dc33768417d3ed98cdce0205b'
});

Передается минимальный набор параметров для авторизации пользователя

ChatbroLoader({
encodedChatId: '12UNE',
siteDomain: 'chatbro.com',
siteUserExternalId: '654',
siteUserFullName: 'Leonardo DiCaprio',
// md5('chatbro.com654Leonardo DiCaprio40657820-0ba1-4e1d-b2f6-b2a40fd09263');
signature: '87349605ce68abbcd52974077aaecd24'
});

Защита от спуфинга включена и возможна авторизация через социальную сеть или гостем

ChatbroLoader({
encodedChatId: '52UNe',
siteDomain: 'chatbro.com',
// md5('chatbro.com67565da2-d138-4991-89bd-1f280b2234dc');
signature: 'ac9fb8ff7228339561bfb4beda35e471'
});

Пользователь может удалять сообщения в чате

ChatbroLoader({
encodedChatId: '12UNE',
siteDomain: 'chatbro.com',
siteUserExternalId: '654',
siteUserFullName: 'Leonardo DiCaprio',
permissions: [ 'delete'],
// md5('chatbro.com654Leonardo DiCaprio < b delete 40657820-0ba1-4e1d-b2f6-b2a40fd09263');
signature: 'd24d9f8f94571a0eb56c2f0eb5ff1328'
});