barsa d3b94b1ed3 feat(auth): implement permission-based access control and centralized error handling
- Introduced PermissionsGuard to enforce permission checks on routes.
- Added RequirePermissions decorator for specifying required permissions on handlers.
- Created AUTH_ERRORS constants for consistent error messages across the auth module.
- Updated CsrfService to reduce CSRF token expiry time for enhanced security.
- Refactored auth cookie handling into utility functions for better maintainability.
- Enhanced TokenBlacklistService to default to fail-closed in production environments.
- Updated various DTOs and schemas for consistency and clarity.
- Removed legacy code and types related to SIM requests.
- Improved logging and error handling in GlobalAuthGuard.
- Added middleware for public path checks and optimistic authentication.
2026-01-19 10:40:50 +09:00

122 lines
2.9 KiB
TypeScript

/**
* Auth Domain
*
* Contains ONLY authentication mechanisms:
* - Login, Signup, Password Management
* - Token Management (JWT)
* - MFA, SSO
*
* User entity types are in customer domain (@customer-portal/domain/customer)
*/
// ============================================================================
// Constants & Contract Types
// ============================================================================
export {
AUTH_ERROR_CODE,
TOKEN_TYPE,
GENDER,
PASSWORD_RESET_CONFIG,
OTP_CONFIG,
type AuthErrorCode,
type TokenTypeValue,
type GenderValue,
} from "./contract.js";
export type {
// Request types
LoginRequest,
SignupRequest,
PasswordResetRequest,
ResetPasswordRequest,
SetPasswordRequest,
ChangePasswordRequest,
LinkWhmcsRequest,
ValidateSignupRequest,
UpdateCustomerProfileRequest,
AccountStatusRequest,
SsoLinkRequest,
CheckPasswordNeededRequest,
RefreshTokenRequest,
// Token types
AuthTokens,
AuthSession,
PasswordResetTokenPayload,
// Response types
AuthResponse,
SignupResult,
PasswordChangeResult,
SsoLinkResponse,
CheckPasswordNeededResponse,
LinkWhmcsResponse,
// Error types
AuthError,
} from "./contract.js";
// ============================================================================
// Schemas (for validation)
// ============================================================================
export {
// Request schemas
loginRequestSchema,
signupInputSchema,
signupRequestSchema,
passwordResetRequestSchema,
passwordResetSchema,
setPasswordRequestSchema,
changePasswordRequestSchema,
linkWhmcsRequestSchema,
validateSignupRequestSchema,
updateCustomerProfileRequestSchema,
updateProfileRequestSchema,
updateAddressRequestSchema,
accountStatusRequestSchema,
ssoLinkRequestSchema,
checkPasswordNeededRequestSchema,
refreshTokenRequestSchema,
// Token schemas
authTokensSchema,
authSessionSchema,
passwordResetTokenPayloadSchema,
// Response schemas
authResponseSchema,
signupResultSchema,
passwordChangeResultSchema,
ssoLinkResponseSchema,
checkPasswordNeededResponseSchema,
linkWhmcsResponseSchema,
} from "./schema.js";
export { buildSignupRequest } from "./helpers.js";
// ============================================================================
// Password Utilities
// ============================================================================
export {
PASSWORD_REQUIREMENTS,
checkPasswordStrength,
getPasswordStrengthDisplay,
MIGRATION_TRANSFER_ITEMS,
MIGRATION_STEPS,
type PasswordRequirementKey,
} from "./forms.js";
// ============================================================================
// RBAC Permissions
// ============================================================================
export {
PERMISSIONS,
ROLE_PERMISSIONS,
hasPermission,
hasAnyPermission,
hasAllPermissions,
getPermissionsForRole,
type Permission,
} from "./permissions.js";