Como identificar o usuário logado do seu site no widget
Com o segredo de identidade, o servidor do site assina o id do usuário: nome e e-mail vêm preenchidos e os chamados aparecem em qualquer aparelho.
Sem identidade, o visitante do widget é anônimo: informa o nome (e, se quiser, o e-mail), e Meus chamados mostra só o que ele abriu naquele navegador. Com a identidade, o servidor do seu site diz ao widget quem é o usuário logado: nome e e-mail já vêm preenchidos, a pessoa vê os chamados dela em qualquer aparelho e a equipe sabe que o id foi confirmado pelo site.
É um recurso para quem desenvolve o site: pede um trecho de código no servidor e outro na página. O cartão do widget traz o mesmo guia em Identidade do usuário logado (opcional).
1. Gere o segredo de identidade
- Passo 1: Em Configurações, aba Widget, abra o menu de três pontos do widget e clique em Gerar segredo de identidade.
- Passo 2: Confirme em Gerar segredo.
- Passo 3: Copie o segredo na tela Segredo de identidade. Ele aparece uma vez só.
- Passo 4: Guarde o segredo no servidor do seu site, nunca no código da página: quem abrisse o código-fonte poderia se passar por qualquer usuário.
2. Assine o id do usuário no servidor
Com o usuário logado, o servidor calcula a assinatura HMAC-SHA256 do id dele com o segredo. Em Node.js:
import { createHmac } from 'node:crypto'
// segredoDoWidget: o segredo de identidade, guardado só no servidor
// usuario: quem está logado no seu site
const benflowHash = createHmac('sha256', segredoDoWidget)
.update(String(usuario.id))
.digest('hex')Em PHP:
<?php
// $segredoDoWidget: o segredo de identidade, guardado só no servidor
$benflowHash = hash_hmac('sha256', (string) $usuario->id, $segredoDoWidget);3. Passe a identidade para o widget
Na página, com a assinatura que veio do servidor, chame identify com o mesmo id assinado. Pode ser antes ou depois de o widget carregar: o atalho da primeira linha guarda a chamada.
<script>
window.Benflow = window.Benflow || function () { (window.Benflow.q = window.Benflow.q || []).push(arguments) }
Benflow('identify', {
id: '123',
name: 'Maria Souza',
email: 'maria@empresa.com.br',
hash: 'assinatura gerada no servidor'
})
</script>Quando o usuário sair da conta no seu site, chame Benflow('logout'). O acesso daquele aparelho aos chamados dele deixa de valer, e quem usar o computador depois não vê nada.
Como fica no Benflow
- Assinatura certa: o chamado mostra o selo Identificado pelo site e, no Contexto técnico, Id confirmado pelo site.
- Assinatura errada: a entrada é recusada e o visitante vê
Não foi possível confirmar a identidade do visitante. - Sem assinatura, ou com o widget sem segredo: o id não é conferido e só preenche o nome e o e-mail do visitante.
A assinatura confirma só o id. O nome e o e-mail aparecem no chamado como o site informou.
Identidade obrigatória
Em Editar, ligue Identidade obrigatória para o widget abrir só para usuários identificados, como numa área logada ou num sistema interno. Quem não estiver identificado vê o aviso de que o widget só abre para usuários identificados pelo site e o pedido para entrar na conta. Se o widget ainda não tiver segredo, o Benflow gera um ao salvar e mostra uma vez só.
Preciso da identidade para usar o widget?
Posso usar a identidade junto com o botão próprio?
identify quando o usuário entrar e Benflow('open') no botão.