Pergunta
Por que vejo um erro de conflito de 409 ao autenticar usuários com autenticação JWT no produto de mensagens?
Resposta
Com a autenticação JWT, uma external_id é necessária sempre. Você também pode incluir uma identidade de e-mail verificada. Se você incluir uma identidade de e-mail verificada, o Sunshine Conversations armazena esse e-mail como um (user.identities) de identidade e cada identidade deve ser exclusiva. Por exemplo, um acesso com JWT pode criar um usuário com o external_id 1234 e o user@example.org de identidade de e-mail.
Um erro de conflito de e-mail ocorre quando o JWT tem um external_id e um e-mail que não correspondem ao que o sistema já tem registrado. Por exemplo, se um JWT subsequente contiver o external_id 5678 e o user@example.org de identidade de e-mail verificado, a tentativa de acesso gerará um erro de conflito de e-mail. Isso ocorre porque o e-mail fornecido já foi pareado com um outro external_id. Essa incompatibilidade às vezes pode ocorrer porque um usuário alterou seu endereço de e-mail. Se o JWT não incluir a declaração de e-mail, o conflito não ocorrerá.
Você pode identificar o usuário que causa o conflito com a List Users API:
-
Método da API:
GEThttps://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users?filter[identities.email]=user@example.org
Para resolver o conflito, há duas opções:
Apagar o usuário em conflito com a API Apagar usuário:
-
Autenticação básica: Usar uma chave da API e uma chave secreta
-
Nome de usuário:
API_KEY_ID -
Senha:
API_KEY_SECRET
-
Nome de usuário:
-
Método da API:
DELETEhttps://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}
Ou você pode usar a API Delete User Personal Information API para apagar a identidade de e-mail em conflito:
-
Método da API:
DELETEhttps://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}/personalinformation
Nas URLs acima, substitua {appId} pela ID que você recebe quando gera a chave da API e a chave secreta e substitua {userIdOrExternalId} pela external_id anterior vinculada ao usuário que retorna o erro.
Para obter mais informações sobre a API do Sunshine Conversations, consulte Bem-vindo à API do Sunshine Conversations.
userIdOrExternalId, apagará o histórico de conversas do usuário final depois que ele for autenticado com o novo external_id e depois que você apagar o usuário do Sunshine Conversations. este artigo é apenas para fins informativos. A Zendesk não oferece suporte nem garantia ao código. Publique quaisquer problemas na seção de comentários ou pesquise por uma solução online.Para obter mais informações, consulte Autenticação de usuários finais para mensagens.
Aviso sobre a tradução: este artigo foi traduzido por um software de tradução automática para oferecer a você uma compreensão básica do conteúdo. Medidas razoáveis foram tomadas para fornecer uma tradução precisa, no entanto, a Zendesk não garante a precisão da tradução.
Em caso de dúvidas relacionadas à precisão das informações contidas no artigo traduzido, consulte a versão oficial do artigo em inglês.