问题
为什么我会看到 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
有关更多信息,请参阅以下文章:对消息传送的终端用户进行身份验证
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。