Files
slp-modular-cms/aidlc-docs/features/slp-modular-cms-api/construction/identity-rbac/nfr-design/invitation-design.md
T

1.2 KiB

Invitation Design — Unit 02: Identity & RBAC

Dit document beschrijft de technische implementatie van het uitnodigingssysteem.

1. IInvitationService

public interface IInvitationService
{
    Task<string> CreateInvitationAsync(string email, string role);
    Task<bool> ValidateInvitationAsync(string token);
    Task CompleteInvitationAsync(string token, string password);
}

2. Token Generatie

Het InvitationToken wordt gegenereerd met de RandomNumberGenerator:

public string GenerateSecureToken()
{
    var bytes = new byte[32];
    RandomNumberGenerator.Fill(bytes);
    return Convert.ToBase64String(bytes);
}

3. Workflow Details

  1. Creatie:
    • Een Invitation record wordt aangemaakt in de database.
    • Het Token wordt gehasht opgeslagen (net als een wachtwoord) om misbruik bij database-lekken te voorkomen.
  2. Validatie:
    • Het systeem zoekt het record op basis van de token-string.
    • Controleert ExpiryDate en IsAccepted.
  3. Afronding:
    • Bij CompleteInvitationAsync wordt de ApplicationUser aangemaakt via de UserManager.
    • De rol wordt toegekend.
    • Het uitnodigingsrecord wordt gemarkeerd als IsAccepted = true.