- Remove /languparent prefix from all API calls (routes are at /auth/* now)
- Align register/login token handling (JWT returned directly, no registration token)
- Feed rewritten to use new getFeedPairs endpoint with PairSentenceCard/YesNoCard/WordCard
- App.jsx: check language_native_id / language_target_id for profile completeness
- Profil.jsx: add logout button
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
registerUser() returns { registrationToken } (10-Min JWT)
createProfile() sends it as X-Registration-Token header
userId nie mehr aus Browser-Body — kommt aus signiertem Token
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- directus.js: all calls now go to /languparent/* on api.hejyou.com
- Admin token and Directus URL no longer in the browser
- JWT issued by API server (30 days), stored in localStorage
- register: single call returns userId, profile step gets fresh JWT
- login: handles needsProfile flag (403) cleanly
- assetUrl: proxy via /languparent/assets/:fileId (no token in URL)
- .env.production: VITE_DIRECTUS_URL → VITE_API_URL
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bake VITE_DIRECTUS_URL into production build via .env.production
so no Coolify build-arg configuration is needed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>