CodamAIDocs
Themafertig

Eine Einladung einlösen

Was die eingeladene Person sieht und tut: offene Felder abrufen, Link einlösen, Mitgliedschaft.

Ausprägungen
offene Felder abrufenannehmenschon angenommen (gleiche Antwort)Link unbekannt oder abgelaufen → 404

Worum es geht

Die eingeladene Person hat eine Mail mit einem Link bekommen, siehe Einladung durch den Mandanten-Administrator. Der Link enthält ein Token: eine lange Zufallszeichenkette, die nur zu diesem einen Vorgang passt. Mit dem Token kann die Oberfläche zwei Dinge tun:

  1. anzeigen, welche Angaben die Einladende offen gelassen hat,
  2. die Einladung annehmen.

Der Ablauf

Vom Link zur Mitgliedschaft
  1. 1
    Benutzer→Frontend
    öffnet den Link aus der Mail
  2. 2
    Frontend→CIAS
    GET /cias/registration/invitations/{token}/form
  3. 3
    CIAS→Frontend
    Liste der Felder des Ablaufs, die noch keinen Wert haben, etwa firstName
  4. 4
    Benutzer→Frontend
    klickt „Einladung annehmen“
  5. 5
    Frontend→CIAS
    POST /cias/registration/invitations/accept mit { "token": "…" }
  6. 6
    CIAS
    Gibt es das Token, und ist es nicht abgelaufen?
    nein: 404 cias.registration.not-found
  7. 7
    CIAS
    Vorgang → VERIFIED, dann Freigabe oder Bereitstellung
  8. 8
    CIAS→Keycloak
    Mitgliedschaft im Mandanten, Mitgliedsrollen. Bei neuer Adresse zusätzlich Konto freischalten
  9. 9
    CIAS→E-Mail
    Willkommensmail
    Ergebnis: 202 { "status": "accepted" }, die Person ist Mitglied

Das Annehmen nimmt nur das Token entgegen.

Die Varianten

Was beim Einlösen passieren kann

Wann: Die Oberfläche will zeigen, was noch fehlt.

Die Antwort enthält alle Felder des Ablaufs, zu denen die Einladende keinen Wert angegeben hat, Pflicht- wie freiwillige Felder. Ist das Token unbekannt, antwortet CIAS mit 404.

Wann: Das Token ist gültig, der Vorgang wartet auf den Klick.

Der Vorgang geht nach VERIFIED und läuft weiter wie jede Registrierung: Freigabe, wenn der Ablauf eine verlangt, sonst direkt die Bereitstellung.

Ergebnis: 202, danach Willkommensmail.

Wann: Das Token wurde schon eingelöst, etwa weil das Mailprogramm den Link vorab geöffnet hat oder die Person zweimal klickt.

CIAS tut nichts und antwortet wie beim ersten Mal mit 202. Das ist Absicht: Ein zweiter Klick darf nicht zu einem Fehler führen.

Ergebnis: 202, keine Änderung.

Wann: Das Token gibt es nicht, oder es ist abgelaufen, während der Vorgang noch auf den Klick wartet.

Beide Fälle sehen gleich aus. So kann niemand durch Ausprobieren herausfinden, welche Links es gibt.

Ergebnis: 404 { "error": "cias.registration.not-found", "message": "no open registration for this link" }

Weiter

Quellen im Code und in der Wissensdatenbank
  • CIAS/cias-registration – RegistrationController (GET /invitations/{token}/form, POST /invitations/accept), RegistrationService (invitationForm, verify, provision)
  • CIAS/cias-registration – Registration.verify, RegistrationToken, RegistrationExceptionHandler
  • CIAS/cias-registration/docs/adr – ADR-011, ADR-012
Suchen