Pular para o conteúdo principal

Neste artigo vamos te mostrar como configurar a autenticação por Token (JWT) para que usuários de plataformas externas sejam autenticados automaticamente na sua loja.

Como funciona

A integração permite o acesso de usuários por meio de tokens JWT (parâmetros seguros) enviados de um recurso externo para a loja. O sistema faz login automaticamente nos usuários que já existem na plataforma, ou cria uma nova conta caso o usuário ainda não esteja cadastrado.

A autenticação é feita pela rota /auth/token, que busca o parâmetro external-auth-token em query strings, cookies ou headers. Esse parâmetro é um JWT assinado com uma chave compartilhada usando o algoritmo HS256.


Passo 1: Pré-requisitos

Entre em contato com [email protected] informando:

  • redirect_url: URL para redirecionamento caso o login ou cadastro falhe
  • jti: Chave compartilhada para assinar os tokens
  • issuer: Identificador do assinante do token (slug ou nome da loja)

Passo 2: Gerar o Token JWT

Com as credenciais fornecidas pelo suporte, você deverá gerar um JWT com os seguintes campos:

CampoDescrição
issSlug que identifica o assinante do token (use o issuer dos pré-requisitos)
jtiID único do token em formato UUID V4
expTimestamp de expiração (60 segundos no futuro, em UTC)
audDeve ser a string "farfalla"
subDeve ser a string "usuario"
intended_urlURL de destino após a autenticação
user.uuidIdentificador único do usuário (obrigatório)
user.emailE-mail do usuário (opcional)
user.picture_urlURL da foto de perfil do usuário (opcional)
user.accept_terms_and_policiesAceite automático dos termos e políticas (opcional, boolean)

|| O campo jti deve ser único para cada token gerado. Use um UUID V4 diferente a cada requisição.

Ferramentas úteis

O cliente deve construir um link na sua plataforma apontando para:

https://[dominio-da-sua-loja]/auth/token?external-auth-token=[SEU_JWT_AQUI]

Quando o usuário clica nesse link, a plataforma valida o token e faz o login automaticamente, redirecionando para a intended_url definida no payload.

Esperamos que este tutorial tenha sido simples para você. Se tiver dúvidas, escreva para [email protected].