0.37.2

Security

  • Refresh-токен перенесён из JSON-ответа в httpOnly cookie tc_refresh (SameSite=Strict) — устранён XSS-вектор B5.9
  • Access-токен хранится в JS-переменной вместо localStorage — при XSS атакующий не может прочитать токен из хранилища
  • Добавлен POST /oauth/logout — отзыв семьи refresh-токенов + очистка cookie
  • При неудачном refresh cookie автоматически очищается

Changed

  • client.ts: api.login() сохраняет access_token в память, refresh уходит через cookie
  • client.ts: api.logout() вызывает серверный logout вместо локальной очистки localStorage
  • auth.ts store: убраны все обращения к localStorage для токенов
  • +layout.svelte: silent refresh через initAuth() при загрузке страницы

Added

  • Тесты refresh_cookie_test.go: 7 тестов — cookie flags, refresh из cookie, logout, rotation + reuse detection