Pular para o conteúdo

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

  1. Passo 1: Em Configurações, aba Widget, abra o menu de três pontos do widget e clique em Gerar segredo de identidade.
  2. Passo 2: Confirme em Gerar segredo.
  3. Passo 3: Copie o segredo na tela Segredo de identidade. Ele aparece uma vez só.
  4. 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:

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
<?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.

Na página
<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?
Não. Sem ela, o widget funciona com o nome e o e-mail que o visitante informa.
Posso usar a identidade junto com o botão próprio?
Sim. As duas chamadas usam o mesmo atalho: chame identify quando o usuário entrar e Benflow('open') no botão.

Ainda com dúvida?

Fale com a equipe do Benflow: conte o que aconteceu e, se puder, mande um print. Como funciona o suporte