v2.0.0 | content.madnet.gr
Version 2.0.0 | Port 8900 | content.madnet.gr/auth/
MAD Auth is the "front door" for all MAD TV online tools. Before you can use the Dashboard, Music Scheduler, Radio Ratings, Playout, or any other service at content.madnet.gr, you need to sign in.
Once signed in, you get a secure cookie that lasts 12 hours. The web server checks this cookie on every request and verifies you have access to the specific service you're visiting.
URL: https://content.madnet.gr/auth/login
The link expires after 15 minutes and can only be used once. If it expires, request a new one.
If your account was created without a password (magic-link only), the password tab will not work. Ask the admin to set one if needed.
Individual services include their own logout buttons. Signing out clears your cookie and revokes your session immediately.
| Role | What it means |
|---|---|
| admin | Full access to everything. Can manage users, view sessions, and see the audit log at /auth/admin. |
| editor | Can access only the services assigned to their account. Cannot manage other users. |
Each user has a list of allowed services. The web server checks this on every request — not just on the dashboard. If you try to visit a service you don't have access to (even by typing the URL directly), you will be redirected to the sign-in page.
The full list of services is managed by admins at /auth/admin. The service registry is defined in data/services.json on the server.
URL: https://content.madnet.gr/auth/admin
The admin panel has four tabs:
data/services.json on the server to modify).In the admin panel, click Add User. Enter a username and email. Leave the password blank — the user will sign in via magic link. Select the services they need.
Same as above, but also enter a password. The user can sign in with either method.
| Method | Path | Auth | What it does |
|---|---|---|---|
| GET | /auth/login | No | Sign-in page |
| POST | /auth/login | No | Password login |
| POST | /auth/magic-link/request | No | Send magic link email |
| GET | /auth/magic-link/verify | No | Consume magic link, create session |
| POST | /auth/logout | Cookie | Sign out, revoke session |
| GET | /auth/validate | Cookie | Returns current user info |
| GET | /auth/check-service | Cookie | Per-service access check (used by Caddy) |
| GET | /auth/api/users | Admin | List all users |
| POST | /auth/api/users | Admin | Create a user |
| PUT | /auth/api/users/:id | Admin | Update a user |
| DELETE | /auth/api/users/:id | Admin | Delete a user |
| POST | /auth/api/users/:id/revoke-all | Admin | Revoke all sessions for a user |
| GET | /auth/api/sessions | Admin | List active sessions |
| POST | /auth/api/sessions/:id/revoke | Admin | Revoke a session |
| GET | /auth/api/audit | Admin | Query audit log |
| GET | /auth/api/services | Cookie | List service registry |
| GET | /auth/admin | Admin | Admin panel UI |
| GET | /auth/health | No | Health check |
mad_sessionThere is also a mad_services cookie readable by JavaScript for UI filtering.
forward_auth — every request is checked, not just the dashboard.| Problem | Solution |
|---|---|
| "Invalid username or password" | Check caps lock. Ask admin to verify your account is active. |
| Magic link not arriving | Check spam folder. Verify your email is set in the admin panel. Max 3 links per 15 minutes. |
| "This sign-in link has expired" | Links expire after 15 minutes. Request a new one. |
| Keeps redirecting to login | Cookie expired (12h) or session was revoked by admin. Sign in again. |
| Can sign in but can't access a service | You don't have that service in your allowed list. Ask admin at /auth/admin. |
MAD Auth Service v2.0.0 | content.madnet.gr/auth/