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
  • 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 userIdOrExternalIdzu 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.

Powered by Zendesk