## Summary Restores refresh token functionality that was lost during a previous refactor. This enables seamless session renewal without forcing users to re-login when their access token expires. ## Server changes - Add refresh token configuration to settingsService (7d TTL by default) - Add issueRefreshToken method to userService - Update login/register/resetPassword to return refreshToken - Add refreshAuthToken method to userService for token refresh - Add refreshAuthToken controller method - Add POST /auth/refresh route - Update verifyJWT middleware to return 403 for expired tokens (triggers refresh) and 401 for invalid tokens (triggers logout) ## Client changes - Store refreshToken in Redux auth state - Clear refreshToken on logout - Add setAuthToken action for updating token after refresh - Update NetworkService to handle 403 responses: - Call /auth/refresh endpoint to get new token - Retry failed request with new token - Queue concurrent requests during refresh - Redirect to login if refresh fails
This directory contains the client side (frontend) of Checkmate.