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

1.2 KiB

Auth Service Design — Unit 02: Identity & RBAC

Dit document beschrijft de IAuthService die verantwoordelijk is voor token-management.

1. Interface definitie

public interface IAuthService
{
    Task<TokenResponse> AuthenticateAsync(string email, string password);
    Task<TokenResponse> RefreshTokenAsync(string accessToken, string refreshToken);
    Task RevokeTokenAsync(string refreshToken);
}

2. JWT Configuratie

  • Signing Key: Wordt uit de environment variable JWT_SIGNING_KEY gelezen.
  • Issuer/Audience: Worden geconfigureerd in appsettings.json.
  • Claims:
    • sub: UserId.
    • email: Gebruikers e-mail.
    • role: Gebruikers rol (bijv. "Administrator").
    • exp: Expiration time.

3. Refresh Token Rotation Logic

Bij een refresh request:

  1. Valideer de refreshToken string tegen de database.
  2. Controleer op Re-use: Indien de IsUsed vlag al op true staat, trek dan alle tokens van die gebruiker in (NFR-ID-SEC-03).
  3. Indien geldig:
    • Markeer huidig token als IsUsed = true.
    • Genereer een nieuw cryptografisch veilig geheim (32 bytes Base64).
    • Sla het nieuwe token op met een nieuwe ExpiryDate.
    • Retourneer het nieuwe AccessToken en RefreshToken.