问题
为什么我会看到 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 不包含电邮声明,则不会发生冲突。
您可以使用 列出用户 API识别导致冲突的用户:
-
API 方法:
GEThttps://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users?filter[identities.email]=user@example.org
要解决此冲突,有两种选择:
删除与 删除用户 API冲突的用户:
-
基本身份验证:使用 API 密钥和密钥
- 用户名
-
密码
-
API 方法:
DELETEhttps://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}
或者您可以使用 删除用户个人信息 API 删除有冲突的电邮身份:
-
API 方法:
DELETEhttps://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}/personalinformation
将上述 URL 中的 {appId} 替换为您在生成 API 密钥和密钥时收到的 ID,并将 {userIdOrExternalId} 与之前的 external_id 已链接到返回错误的用户。
有关Sunshine Conversations API 的更多信息,请参阅 欢迎使用Sunshine Conversations API。
userIdOrExternalId,在终端用户使用新的身份验证帐户后,清除对话历史记录 external_id 在您从Sunshine Conversations中删除该用户之后。本文仅供说明之用。Zendesk 对代码不提供支持,也不保证代码质量。如有任何问题,请将其发布在评论部分,或在线搜索解决方案。有关更多信息,请参阅 为消息传送对终端用户进行身份验证。
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。