mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-03-04 23:30:19 +01:00
* added support for url query param persistance * refactor: authentication redirect handling - Introduced utility functions for managing login redirects, including `persistRedirectToSession`, `buildLoginRedirectUrl`, and `getPostLoginRedirect`. - Updated `Login` and `AuthContextProvider` components to utilize these utilities for improved redirect logic. - Refactored `useAuthRedirect` to streamline navigation to the login page while preserving intended destinations. - Cleaned up the `StartupLayout` to remove unnecessary redirect handling, ensuring a more straightforward navigation flow. - Added a new `redirect.ts` file to encapsulate redirect-related logic, enhancing code organization and maintainability. * fix: enhance safe redirect validation logic - Updated the `isSafeRedirect` function to improve validation of redirect URLs. - Ensured that only safe relative paths are accepted, specifically excluding paths that lead to the login page. - Refactored the logic to streamline the checks for valid redirect targets. * test: add unit tests for redirect utility functions - Introduced comprehensive tests for `isSafeRedirect`, `buildLoginRedirectUrl`, `getPostLoginRedirect`, and `persistRedirectToSession` functions. - Validated various scenarios including safe and unsafe redirects, URL encoding, and session storage behavior. - Enhanced test coverage to ensure robust handling of redirect logic and prevent potential security issues. * chore: streamline authentication and redirect handling - Removed unused `useLocation` import from `AuthContextProvider` and replaced its usage with `window.location` for better clarity. - Updated `StartupLayout` to check for pending redirects before navigating to the new chat page, ensuring users are directed appropriately based on their session state. - Enhanced unit tests for `useAuthRedirect` to verify correct handling of redirect parameters, including encoding of the current path and query parameters. * test: add unit tests for StartupLayout redirect behavior - Introduced a new test suite for the StartupLayout component to validate redirect logic based on authentication status and session storage. - Implemented tests to ensure correct navigation to the new conversation page when authenticated without pending redirects, and to prevent navigation when a redirect URL parameter or session storage redirect is present. - Enhanced coverage for scenarios where users are not authenticated, ensuring robust handling of redirect conditions. --------- Co-authored-by: Vamsi Konakanchi <vamsi.k@trackmind.com> Co-authored-by: Danny Avila <danny@librechat.ai> |
||
|---|---|---|
| .. | ||
| Agents | ||
| Artifacts | ||
| Assistants | ||
| Audio | ||
| Chat | ||
| Config | ||
| Conversations | ||
| Endpoint | ||
| Files | ||
| Generic | ||
| Input | ||
| MCP | ||
| Mermaid | ||
| Messages | ||
| Nav | ||
| Plugins | ||
| Prompts | ||
| Roles | ||
| Sharing | ||
| SSE | ||
| ApiErrorBoundaryContext.tsx | ||
| AuthContext.tsx | ||
| index.ts | ||
| ScreenshotContext.tsx | ||
| useChatBadges.ts | ||
| useDocumentTitle.ts | ||
| useFavorites.ts | ||
| useGenerationsByLatest.ts | ||
| useInfiniteScroll.ts | ||
| useLocalize.ts | ||
| useLocalizedConfig.ts | ||
| useLocalStorage.tsx | ||
| useLocalStorageAlt.tsx | ||
| useNewConvo.ts | ||
| usePersonalizationAccess.ts | ||
| useResourcePermissions.ts | ||
| useScrollToRef.ts | ||
| useTimeout.tsx | ||
| useVirtualGrid.ts | ||
| useWakeLock.ts | ||