Add HttpOnly cookie auth for cross-domain SPA login

Problem: Frontend JS bundle used credentials:'same-origin' which
dropped cookies on cross-domain requests. Login worked (200) but
the subsequent /auth/me check returned 401, leaving the user stuck
on the login screen.

Fix:
- AuthController now sets a dtp_jwt HttpOnly cookie on login/refresh
- Cookie uses Domain=.fahrschultermin.de (shared between frontend
  and api subdomain), Secure, SameSite=Lax, Max-Age=8h
- JwtMiddleware reads JWT from Authorization header OR cookie
- Added AuthController::me() endpoint (was missing, caused 500)
- Logout endpoint clears the cookie
- Frontend index.php patches fetch() to use credentials:'include'
  for all /api/v1/* calls
This commit is contained in:
Hermes Agent
2026-06-04 20:33:31 +02:00
parent 5f753c15df
commit 5d87e4975c
1040 changed files with 95 additions and 13 deletions

0
www/fahrschuldesk.de/dist/assets/AuditLogs-rWevo39c.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Branches-s_BK2cgz.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Branding-D61QMGtV.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Calendar-B7rUkOeg.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Dashboard-DUl1_Jl9.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Files-BvF-O0NH.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/ForgotPassword-BnefAgO5.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Invoices-DPbiN6Xy.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Learning-C1i3Orm8.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Login-fU5wXJUp.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Messenger-DL4jJcTI.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Modules-XFzn2DhG.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/NotFound-CXY4AhOb.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/PlatformAdmins-BsfJuUAN.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Register-Dtyvn1Yy.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/TenantEdit-TJEJ_0TK.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Tenants-oNbkI0ZB.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/Users-UfUrkk1j.js vendored Normal file → Executable file
View File

View File

0
www/fahrschuldesk.de/dist/assets/index-CeMVzSB6.js vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/assets/index-DnvNyrEP.css vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/dist/index.html vendored Normal file → Executable file
View File

0
www/fahrschuldesk.de/index.html Normal file → Executable file
View File

0
www/fahrschuldesk.de/package-lock.json generated Normal file → Executable file
View File

0
www/fahrschuldesk.de/package.json Normal file → Executable file
View File

0
www/fahrschuldesk.de/public/index.html Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/App.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/api/client.js Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/main.js Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/router/index.js Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/stores/auth.js Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/styles/main.css Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/Dashboard.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/NotFound.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/admin/AuditLogs.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/admin/Invoices.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/admin/Modules.vue Normal file → Executable file
View File

View File

0
www/fahrschuldesk.de/src/views/admin/TenantEdit.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/admin/Tenants.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/auth/ForgotPassword.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/auth/Login.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/auth/Register.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/student/Dashboard.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/student/Learning.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/tenant/Branches.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/tenant/Branding.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/tenant/Calendar.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/tenant/Files.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/tenant/Learning.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/tenant/Messenger.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/src/views/tenant/Users.vue Normal file → Executable file
View File

0
www/fahrschuldesk.de/tailwind.config.js Normal file → Executable file
View File

0
www/fahrschuldesk.de/vite.config.js Normal file → Executable file
View File