Authentication Flow
Login
Users authenticate through the standard Laravel authentication flow. Login Page:canResetPassword- Whether password reset is availablestatus- Session status messagecanSignUp- Whether new user registration is allowederror- Any authentication errors
- Session is regenerated for security
- Redirects to
/discoverroute - User must have verified email
Logout
Endpoint:- Logs out user from
webguard - Invalidates session
- Regenerates CSRF token
- Redirects to home page (
/)
AuthenticatedSessionController::destroy (routes/web.php:54)
Session Management
Session Lifecycle
Session Creation:- Created on successful login
- Regenerated after authentication
- Stores user ID and authentication state
- All authenticated routes check session validity
- Middleware:
authandverified
- Explicit logout
- Session timeout (configured in
session.php) - Security-triggered invalidation
CSRF Protection
All POST, PATCH, and DELETE requests require CSRF token validation:Middleware
Required Middleware
All routes (except/ and auth routes) are wrapped in middleware group:
Ensures user is authenticated
- Redirects to login if not authenticated
- Validates session token
Ensures user’s email is verified
- Redirects to verification prompt if unverified
- Required for all application features
Permission Middleware
Certain endpoints require additional authorization:Server Download Permission
GET /movies/{model}/download(routes/web.php:46)GET /series/{model}/{season}/{episode}/download(routes/web.php:68)POST /series/{model}/download(routes/web.php:72)
Auto-Download Schedules Permission
- Series monitoring endpoints (routes/web.php:84)
- Series monitoring run-now (routes/web.php:99)
- Series monitoring backfill (routes/web.php:103)
Download Operations Permission
PATCH /downloads/{model}(routes/web.php:116)DELETE /downloads/{model}(routes/web.php:120)
MediaDownloadsController (app/Http/Controllers/MediaDownloadsController.php:39)
User Roles
The application implements role-based access control:Admin Role
Enum:UserRole::Admin
Admins have additional capabilities:
- View all users’ downloads
- Filter downloads by owner
- Access owner options in downloads list
Member Role
Enum:UserRole::Member
Members have standard access:
- View only their own downloads
- Cannot access admin-specific filters
- Restricted download operations to owned resources
Current User Access
Controllers access the authenticated user through dependency injection:- VodStreamController.php:28
- SeriesController.php:30
- WatchlistController.php:70
Email Verification
Verification Requirement
Theverified middleware requires users to verify their email before accessing any authenticated routes.
Verification Flow:
- User registers
- Verification email sent
- User clicks verification link
- Email marked as verified
- User can access protected routes
routes/auth.php (required at routes/web.php:130)
Security Features
Session Regeneration
Sessions are regenerated on authentication to prevent session fixation:Session Invalidation
Sessions are invalidated on logout:Signed URLs
Direct download links use signed URLs for security:- Tamper-proof tokens
- Expiration support
- Cannot be reused or modified
Authentication Examples
Checking Authentication Status
Accessing Current User
Checking Watchlist Membership
Next Steps
Movies API
Explore movie and VOD endpoints
Series API
Browse series and episode endpoints