Authentication Module Documentation
Overview
The Authentication module handles all user authentication, authorization, and account management functionalities in the admin panel application.
Path:src/app/authentication
Module File: authentication.module.ts
Routing File: authentication.routing.ts
Purpose
- User login and logout functionality
- Account registration and verification
- Password management (forgot, reset, change)
- User authorization and access control
- Account restoration and deletion processes
- Email verification workflows
- Multi-factor authentication support
Components
Core Authentication Components
1. LoginComponent (login/login.component.ts)
- Main login interface
- Handles user credentials validation
- Supports social login integration
- Redirects based on user roles
2. SignupComponent (signup/signup.component.ts)
- New user registration
- Form validation and submission
- Account creation workflow
3. ForgotComponent (forgot/forgot.component.ts)
- Password recovery interface
- Email-based password reset
- Security question handling
4. ResetPasswordComponent (reset-password/reset-password.component.ts)
- Password reset form
- Token-based validation
- New password confirmation
User Management Components
5. VerifyemailComponent (verifyemail/verifyemail.component.ts)
- Email address verification
- Verification code handling
- Account activation process
6. UserloginComponent (userlogin/userlogin.component.ts)
- Alternative login interface
- Specialized user authentication
7. SetpasswordComponent (setpassword/setpassword.component.ts)
- Initial password setup
- Password strength validation
- Security requirements enforcement
Account Operations Components
8. DeleteUserComponent (delete-user/delete-user.component.ts)
- User account deletion
- Data cleanup processes
- Confirmation workflows
9. DeleteProcessComponent (delete-process/delete-process.component.ts)
- Deletion process management
- Progress tracking
- Cleanup verification
10. RestoreAccountComponent (restore-account/restore-account.component.ts)
- Account recovery functionality
- Data restoration processes
- Backup management
Authorization Components
11. AuthorizationComponent (authorization/authorization.component.ts)
- Authorization code handling
- OAuth integration
- Third-party service authorization
Error Handling Components
12. ErrorComponent (error/error.component.ts)
- Authentication error display
- Error message formatting
- Recovery suggestions
13. LockscreenComponent (lockscreen/lockscreen.component.ts)
- Session lock interface
- Quick re-authentication
- Security timeout handling
14. NotfoundComponent (404/not-found.component.ts)
- 404 error page
- Navigation assistance
- Error reporting
Services
Primary Services
1. AuthenticationService (authentication.service.ts)
- Core authentication logic
- API communication for auth operations
- Session management
- Token handling
- User state management
2. ZohoSalesiqService (zoho-salesiq.service.ts)
- Zoho SalesIQ integration
- Customer support chat
- Live chat functionality
Security Components
3. AuthGuard (guard/auth.guard.ts)
- Route protection
- Authentication verification
- Access control enforcement
4. CandeactivateGuard (guard/candeactivate.guard.ts)
- Unsaved changes protection
- Navigation confirmation
- Data loss prevention
HTTP Interceptors
5. JwtInterceptor (helper/jwt.interceptor.ts)
- JWT token injection
- Automatic token refresh
- Request authentication
6. HttpErrorInterceptor (helper/error.interceptor.ts)
- Global error handling
- API error processing
- User-friendly error messages
Development Helpers
7. FakeBackend (helper/fake_backend.ts)
- Mock API responses
- Development testing
- Backend simulation
Data Models
Authentication Models
- Authentication (
model/model.class.ts) - Main auth model - User (
model/user.class.ts) - User data structure - OTP (
model/otp.model.ts) - One-time password model - VerifyModel (
model/verify_model.class.ts) - Verification model
File Structure
``
src/app/authentication/
├── 404/
│ ├── not-found.component.html
│ └── not-found.component.ts
├── authorization/
│ ├── authorization.component.css
│ ├── authorization.component.html
│ └── authorization.component.ts
├── delete-process/
│ ├── delete-process.component.css
│ ├── delete-process.component.html
│ └── delete-process.component.ts
├── delete-user/
│ ├── delete-user.component.css
│ ├── delete-user.component.html
│ └── delete-user.component.ts
├── error/
│ ├── error.component.html
│ ├── error.component.scss
│ └── error.component.ts
├── forgot/
│ ├── forgot.component.css
│ ├── forgot.component.html
│ └── forgot.component.ts
├── guard/
│ ├── auth.guard.ts
│ └── candeactivate.guard.ts
├── helper/
│ ├── error.interceptor.ts
│ ├── fake_backend.ts
│ └── jwt.interceptor.ts
├── lockscreen/
│ ├── lockscreen.component.html
│ ├── lockscreen.component.scss
│ └── lockscreen.component.ts
├── login/
│ ├── login.component.css
│ ├── login.component.html
│ ├── login.component.spec.ts
│ └── login.component.ts
├── model/
│ ├── model.class.ts
│ ├── otp.model.ts
│ ├── user.class.ts
│ └── verify_model.class.ts
├── reset-password/
├── restore-account/
├── setpassword/
├── signup/
├── userlogin/
├── verifyemail/
├── authentication.module.ts
├── authentication.routing.ts
├── authentication.service.spec.ts
├── authentication.service.ts
└── zoho-salesiq.service.ts
`
Key Dependencies
@angular/forms - Reactive and template-driven forms
@angular/common/http - HTTP client for API calls
@angular/router - Navigation and routing
angularx-social-login - Social media authentication
@ng-bootstrap/ng-bootstrap - Bootstrap components
@angular/material - Material design components
Routes Configuration
The authentication module uses the following route structure:
/login - Main login page
/signup - User registration
/forgot - Password recovery
/reset-password - Password reset form
/verify-email - Email verification
/delete-user - Account deletion
/restore-account - Account restoration
/404` - Not found page
Security Features
1. JWT Token Management - Secure token handling and refresh
2. Route Guards - Protected routes and access control
3. Password Validation - Strong password requirements
4. Email Verification - Account activation via email
5. Session Management - Secure session handling
6. Error Handling - Secure error messages
7. Social Login - OAuth integration support
Usage Guidelines
Authentication Flow
1. User accesses login page
2. Credentials are validated
3. JWT token is generated and stored
4. User is redirected to dashboard
5. Token is used for subsequent API calls
6. Token refresh handled automatically
Integration with Other Modules
- Guards protect all authenticated routes
- HTTP interceptors handle all API requests
- Authentication state is shared across modules
- User profile data is accessible globally
API Integration
The module integrates with backend authentication APIs for:
- User login/logout
- Account registration
- Password management
- Email verification
- Account operations
- Social login providers
Error Handling
Comprehensive error handling for:
- Invalid credentials
- Network errors
- Token expiration
- Account lockouts
- Verification failures
- Server errors
Testing Support
- Mock backend for development
- Test guards and interceptors
- Component testing utilities
- Service testing framework