Files
omsorg/omsorgapp/api-client-ts/.openapi-generator/FILES
T
Felix KemmlerandClaude Sonnet 5 09dce2ab98
Docker-Images bauen und veröffentlichen / build (, omsorgCore/Dockerfile, omsorgcore) (push) Successful in 14s
Docker-Images bauen und veröffentlichen / build (, omsorgWeb/Dockerfile, omsorgweb) (push) Successful in 5s
Docker-Images bauen und veröffentlichen / build (, omsorgapp/Dockerfile, omsorgapp) (push) Successful in 17s
Fix broken login on omsorgWeb: restore refreshToken in auth responses
The cookie-only refresh-token migration earlier this session broke both
mitarbeiter-app and mitarbeiter-app-legacy: they're server-to-server PHP
clients (cURL/Guzzle calling omsorgCore directly) with no browser cookie
jar, so dropping refreshToken from the login/refresh response body left
them with nothing to store - login appeared to succeed, redirected to
the dashboard, but the very next page's session check failed silently
(mitarbeiter-app's _ensure_fresh_token() bails out whenever
$_SESSION['omsorgcore_refresh_token'] is empty), bouncing the user back
to the login form every time.

Fix: dual-mode refresh token transport instead of cookie-only.
- LoginResponse includes refreshToken again (restores the pre-migration
  contract PHP already expected) alongside the HttpOnly cookie.
- AuthController.Refresh/Logout accept an optional body-carried
  RefreshRequest/LogoutRequest as a fallback: cookie is checked first
  (browser/omsorgapp), body second (server-to-server clients).
- omsorgapp keeps ignoring the body's refreshToken and relies solely on
  the cookie (XSS-safe) - only its authApi.js needed a small update since
  the regenerated client now requires an explicit (empty) parameter
  object for refresh/logout.
- Regenerated omsorgcore-client-ts; api-client-php's lib/ was already
  consistent (never regenerated during the original migration, so it
  still expected refreshToken all along - only the backend had stopped
  providing it).

Verified end-to-end against a live instance: PHP login+refresh via
omsorgcore_login()/omsorgcore_refresh(), and the browser cookie-only
flow via curl with Origin/credentials headers - both work.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 19:02:16 +02:00

111 lines
3.5 KiB
Plaintext

.gitignore
.npmignore
README.md
package.json
src/apis/AbsencesApi.ts
src/apis/AdminEmailApi.ts
src/apis/AdminSessionsApi.ts
src/apis/AuditLogApi.ts
src/apis/AuthApi.ts
src/apis/ContractsApi.ts
src/apis/DocumentsApi.ts
src/apis/EmployeesApi.ts
src/apis/FacilitiesApi.ts
src/apis/FacilityContactsApi.ts
src/apis/FacilityQualificationRatesApi.ts
src/apis/HealthApi.ts
src/apis/OrdersApi.ts
src/apis/RolesApi.ts
src/apis/TimeEntriesApi.ts
src/apis/TrashApi.ts
src/apis/UsersApi.ts
src/apis/ValueListsApi.ts
src/apis/index.ts
src/index.ts
src/models/AbsenceDecisionRequest.ts
src/models/AbsenceResponse.ts
src/models/AbsenceResponsePagedResponse.ts
src/models/AddUserPermissionOverrideRequest.ts
src/models/AuditEventCategory.ts
src/models/AuditLogEntryResponse.ts
src/models/AuditLogEntryResponsePagedResponse.ts
src/models/ChangePasswordRequest.ts
src/models/ContractResponse.ts
src/models/ContractResponsePagedResponse.ts
src/models/CreateAbsenceRequest.ts
src/models/CreateContractRequest.ts
src/models/CreateEmployeeRequest.ts
src/models/CreateFacilityContactRequest.ts
src/models/CreateFacilityQualificationRateRequest.ts
src/models/CreateFacilityRequest.ts
src/models/CreateOrderRequest.ts
src/models/CreateRoleRequest.ts
src/models/CreateTimeEntryRequest.ts
src/models/CreateUserRequest.ts
src/models/CreateValueListItemRequest.ts
src/models/DocumentResponse.ts
src/models/EmployeeResponse.ts
src/models/EmployeeResponsePagedResponse.ts
src/models/FacilityContactResponse.ts
src/models/FacilityQualificationRateResponse.ts
src/models/FacilityResponse.ts
src/models/FacilityResponsePagedResponse.ts
src/models/ForgotPasswordRequestRequest.ts
src/models/ForgotPasswordRequestResponse.ts
src/models/ForgotPasswordResetRequest.ts
src/models/ForgotPasswordVerifyRequest.ts
src/models/ForgotPasswordVerifyResponse.ts
src/models/LoginRequest.ts
src/models/LoginResponse.ts
src/models/LogoutRequest.ts
src/models/MeResponse.ts
src/models/ModuleType.ts
src/models/OrderResponse.ts
src/models/OrderResponsePagedResponse.ts
src/models/PasswordPolicyResponse.ts
src/models/PasswordResetTemplateResponse.ts
src/models/PermissionAction.ts
src/models/PermissionDto.ts
src/models/PermissionEffect.ts
src/models/PermissionScope.ts
src/models/RefreshRequest.ts
src/models/ResetUserPasswordRequest.ts
src/models/RolePermissionsResponse.ts
src/models/RoleResponse.ts
src/models/SendTestEmailRequest.ts
src/models/SessionResponse.ts
src/models/TimeEntryDecisionRequest.ts
src/models/TimeEntryResponse.ts
src/models/TimeEntryResponsePagedResponse.ts
src/models/TrashAbsenceResponse.ts
src/models/TrashContractResponse.ts
src/models/TrashEmployeeResponse.ts
src/models/TrashFacilityContactResponse.ts
src/models/TrashFacilityQualificationRateResponse.ts
src/models/TrashFacilityResponse.ts
src/models/TrashOrderResponse.ts
src/models/TrashTimeEntryResponse.ts
src/models/UpdateAbsenceRequest.ts
src/models/UpdateContractRequest.ts
src/models/UpdateDocumentRequest.ts
src/models/UpdateEmployeeRequest.ts
src/models/UpdateFacilityContactRequest.ts
src/models/UpdateFacilityQualificationRateRequest.ts
src/models/UpdateFacilityRequest.ts
src/models/UpdateOrderRequest.ts
src/models/UpdateRolePermissionsRequest.ts
src/models/UpdateTimeEntryRequest.ts
src/models/UpdateUserRequest.ts
src/models/UpdateValueListItemRequest.ts
src/models/UserPermissionOverrideResponse.ts
src/models/UserResponse.ts
src/models/ValueListItemResponse.ts
src/models/ValueListResponse.ts
src/models/ValueListTransitionRequest.ts
src/models/ValueListTransitionResponse.ts
src/models/ValueListUsageResponse.ts
src/models/index.ts
src/runtime.ts
tsconfig.esm.json
tsconfig.json