问题

为什么我会看到 409 当我在消息传送中使用 JWT 身份验证对用户进行身份验证时,出现冲突错误?

回答

使用 JWT 身份验证 external_id 始终为必填,也可以选择包含 已验证的电邮身份 。当包含已验证的电邮身份时, Sunshine Conversations会将该电邮存储为 (user.identities),并且这些身份必须是唯一的。例如,JWT 登录可能会创建一个名为 external_id 1234 和电邮身份 user@example.org.

电邮冲突错误表示所提供的 JWT 有 external_id 和 电邮配对与记录中的内容不匹配。例如,如果后续 JWT 包含 external_id 5678 和已验证电邮身份 user@example.org,那么登录尝试将产生电邮冲突错误。这是因为给定的电邮已与其他电邮配对 external_id.有时会发生这种不匹配的情况,因为用户已更改其电邮地址。如果 JWT 没有电邮声明,则不会发生冲突。

要解决此问题并允许用户使用已更新的 external_id 要通过 JWT 身份验证登录,您必须删除以前的 user.id ,您已链接到第一个 external_id.

进行 API 调用:

  • 基本身份验证,使用 API 密钥和密钥
    • 用户名
    • 密码
  • API 方法: DELETE
    • https://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}

在上述 URL 中,将 {appId} 替换为生成 API 密钥和密钥时提供的 ID, {userIdOrExternalId} 与之前的 external_id 已链接到返回该错误的用户。

有关Sunshine Conversations API 的更多信息,请参阅文章:欢迎使用Sunshine Conversations API。

免责声明:如果您按照上述步骤删除 userIdOrExternalId,您将为该终端用户滑动对话记录,当终端用户使用新的身份验证时 ExternalId,在您删除 UserID 来自Sunshine Conversations。本文仅供说明之用。Zendesk 对代码不提供支持,也不保证代码质量。如有任何问题,请将其发布在评论部分,或在线搜索解决方案。

另一种选择是从Sunshine Conversations删除用户个人信息。您不会删除Sunshine Conversations个人资料中与此端点的对话:删除用户个人信息。

  • API 方法: DELETE
    • https://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}/personalinformation

有关更多信息,请参阅以下文章:对消息传送的终端用户进行身份验证

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

由 Zendesk 提供技术支持