Frage
Warum erhalte ich einen 409
-Fehler, wenn ich Benutzer mit JWT-Authentifizierung in Messaging authentifiziere?
Antwort
Bei der JWT-Authentifizierung ist immer eine external_id
erforderlich, optional kann auch eine verifizierte E-Mail-Identität angegeben werden. Wenn eine bestätigte E-Mail-Identität enthalten ist, speichert Sunshine Conversations diese E-Mail als Identitäts-(user.identities)
, wobei diese Identitäten eindeutig sein müssen. Bei einer JWT-Anmeldung wird beispielsweise ein Benutzer mit der external_id
1234 und der user@example.org
für die E-Mail-Identität erstellt.
Ein E-Mail-Konfliktfehler deutet darauf hin, dass das JWT, das präsentiert wird, eine external_id
und eine E-Mail-Kopplung aufweist, die nicht mit dem übereinstimmen, was bereits aufgezeichnet ist. Wenn ein nachfolgendes JWT beispielsweise die external_id
5678 und die bestätigte E-Mail-Identität user@example.org
enthält, führt der Anmeldeversuch zu einem E-Mail-Konfliktfehler. da die angegebene E-Mail bereits mit einem anderen external_id
verknüpft ist. Diese Abweichung kann manchmal auftreten, weil ein Benutzer seine E-Mail-Adresse geändert hat. Wenn das JWT den E-Mail-Anspruch nicht hätte, würde der Konflikt nicht auftreten.
Um dieses Verhalten zu beheben und Benutzern mit einer aktualisierten external_id
die Anmeldung über die JWT-Authentifizierung zu ermöglichen, müssen Sie die vorherigen user.id
löschen, die Sie mit der ersten external_id
verknüpft haben.
API-Aufruf durchführen:
-
Basisauthentifizierung, API-Schlüssel und Geheimschlüssel verwenden
-
Benutzername:
API_KEY_ID
-
Kennwort:
API_KEY_SECRET
-
Benutzername:
-
API-Methode:
DELETE
https://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}
Ersetzen Sie innerhalb der oben genannten URLs den {appId}
durch die ID, die beim Generieren des API-Schlüssels und des Geheimschlüssels angegeben wurde, und ersetzen Sie den {userIdOrExternalId}
durch den vorherigen external_id
, der mit dem Benutzer verknüpft ist, der den Fehler zurückgibt.
Weitere Informationen zur Sunshine Conversations API finden Sie in diesem Beitrag: Willkommen bei der Sunshine Conversations API.
Haftungsausschluss: Wenn Sie die oben beschriebenen Schritte ausführen, um die userIdOrExternalId
zu löschen, wird der Konversationsverlauf für den Endbenutzer gelöscht, wenn er sich mit der neuenExternalId
authentifiziert, nachdem Sie dieUserID
aus Sunshine Conversations gelöscht haben. Dieser Beitrag dient lediglich zu Demonstrationszwecken. Zendesk bietet keine Unterstützung oder Garantie für den Code. Posten Sie Probleme in den Kommentaren oder suchen Sie online nach einer Lösung.
Eine weitere Möglichkeit besteht darin, die personenbezogenen Informationen des Benutzers aus Sunshine Conversations zu löschen. Die Konversationen im Sunshine Conversations Profil mit diesem Endpunkt werden nicht gelöscht: Persönliche Benutzerinformationen löschen.
-
API-Methode:
DELETE
https://<subdomain>.zendesk.com/sc/v2/apps/{appId}/users/{userIdOrExternalId}/personalinformation
Weitere Informationen finden Sie in diesem Beitrag: Authentifizieren von Endbenutzern für Messaging.
Hinweis zur Übersetzung: Dieser Beitrag wurde mit automatischer Übersetzungssoftware übersetzt, um dem Leser ein grundlegendes Verständnis des Inhalts zu vermitteln. Trotz angemessener Bemühungen, eine akkurate Übersetzung bereitzustellen, kann Zendesk keine Garantie für die Genauigkeit übernehmen.
Sollten in Bezug auf die Genauigkeit der Informationen im übersetzten Beitrag Fragen auftreten, beziehen Sie sich bitte auf die englische Version des Beitrags, die als offizielle Version gilt.