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