Overview
TheAuthController manages all authentication operations for the DentControl application. It handles user login with credential validation, status checks for both users and their associated clinics, session management with “remember me” functionality, and role-based dashboard redirects. It also provides logout functionality with proper session cleanup.
Location: app/Http/Controllers/AuthController.php
Methods
showLogin()
Displays the login form view. Route:GET /
Route Name: login
Middleware: None (public route)
Response:
Returns the auth.login Blade view.
Example:
login()
Authenticates a user and redirects based on their role. Includes validation of user credentials, user status, and clinic status. Route:POST /login
Route Name: login.post
Middleware: None (public route)
Parameters:
Username for authentication
User password
Whether to remember the user session (checkbox)
nom_usuario: required, stringpassword: required, string
- Regenerates session
- Redirects based on user role:
superadmin→/admin/dashboarddentista→/dentista/dashboardasistente→/asistente/dashboard- Default →
/dashboard
- Invalid credentials
- Inactive user account (
estatus !== 'activo') - Inactive associated clinic (
clinica->estatus === 'baja')
"El nombre de usuario o la contraseña no son correctos."- Invalid credentials"Tu cuenta está suspendida o inactiva. Contacta al administrador."- User status is not active"La clínica asociada a esta cuenta ha sido dada de baja."- Associated clinic is inactive
- Session regeneration on successful login
- Automatic logout if user or clinic is inactive
- Remember me functionality
- Only username field preserved on error (password is not retained)
redirectByUserRole() (protected)
Auxiliary method that determines the dashboard redirect based on user role. Parameters:$user- Authenticated user model instance
- Redirect response to role-specific dashboard
superadmin→admin.dashboarddentista→dentista.dashboardasistente→asistente.dashboard- Default →
dashboard(intended route)
logout()
Logs out the current user and invalidates the session. Route:POST /logout
Route Name: logout
Middleware: Implicit (user must be authenticated)
Response:
Redirects to login page with:
- Session invalidated
- Session token regenerated
- User logged out
- Session invalidation
- CSRF token regeneration
- Complete logout cleanup
Summary
TheAuthController provides 4 methods (3 public, 1 protected) for comprehensive authentication management:
- showLogin() - Display login form
- login() - Authenticate with multi-level validation
- redirectByUserRole() - Role-based routing logic
- logout() - Secure session termination
- Multi-role authentication (superadmin, dentista, asistente)
- User and clinic status validation
- Remember me functionality
- Secure session management
- Role-based dashboard routing