1.2 KiB
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_KEYgelezen. - 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:
- Valideer de
refreshTokenstring tegen de database. - Controleer op Re-use: Indien de
IsUsedvlag al optruestaat, trek dan alle tokens van die gebruiker in (NFR-ID-SEC-03). - 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
AccessTokenenRefreshToken.
- Markeer huidig token als