1.2 KiB
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
- Creatie:
- Een
Invitationrecord wordt aangemaakt in de database. - Het
Tokenwordt gehasht opgeslagen (net als een wachtwoord) om misbruik bij database-lekken te voorkomen.
- Een
- Validatie:
- Het systeem zoekt het record op basis van de token-string.
- Controleert
ExpiryDateenIsAccepted.
- Afronding:
- Bij
CompleteInvitationAsyncwordt deApplicationUseraangemaakt via deUserManager. - De rol wordt toegekend.
- Het uitnodigingsrecord wordt gemarkeerd als
IsAccepted = true.
- Bij