kiss_authorization library

Kiss Auth Authorization Module

Provides role-based and permission-based access control interfaces. This module handles the "what can this user do?" part of authentication.

For credential-based authentication (the "how do I get a token?" part), use the kiss_login module.

For token validation (the "is this token valid?" part), use the kiss_authentication module.

Usage

import 'package:kiss_auth/kiss_authorization.dart';

// Create authorization service
final authValidator = JwtAuthValidator.hmac('secret');
final authzProvider = InMemoryAuthorizationProvider();
final authzService = AuthorizationService(authValidator, authzProvider);

// Check permissions
final hasPermission = await authzService.hasPermission(token, 'user:read');
if (hasPermission) {
  // User can read users
}

// Get full authorization context
final context = await authzService.authorize(token);
print('User roles: ${context.authorizationData.roles}');

Classes

AuthenticationData
Abstract representation of authentication data
AuthorizationContext
Combined authorization context containing both identity and authorization data
AuthorizationData
Represents authorization data for a user
AuthorizationProvider
Abstract interface for authorization providers
AuthorizationService
Server-side authorization manager that combines token validation with authorization checking
AuthorizationServiceConfig
Configuration for authorization services
AuthValidator
Abstract interface for token validation
InMemoryAuthorizationProvider
In-memory authorization provider for testing and development
JwtAuthValidator
JWT token validator implementation

Enums

JwtAlgorithm
JWT algorithm types supported