feat: remember authenticated redirect URL after login (#7832)

* feat: remember authenticated redirect URL after login

* feat: remember authenticated redirect URL after login
pull/7835/head
Kamran Ahmed 2 months ago committed by GitHub
parent a81c435500
commit 4c05f135f0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 13
      src/components/Authenticator/authenticator.ts
  2. 4
      src/components/Navigation/navigation.ts

@ -1,6 +1,8 @@
import Cookies from 'js-cookie';
import { TOKEN_COOKIE_NAME } from '../../lib/jwt';
export const REDIRECT_PAGE_AFTER_AUTH = 'redirect_page_after_auth';
function easeInElement(el: Element) {
el.classList.add('opacity-0', 'transition-opacity', 'duration-300');
el.classList.remove('hidden');
@ -56,7 +58,8 @@ function handleGuest() {
// If the user is on an authenticated route, redirect them to the home page
if (authenticatedRoutes.includes(window.location.pathname)) {
window.location.href = '/';
localStorage.setItem(REDIRECT_PAGE_AFTER_AUTH, window.location.pathname);
window.location.href = '/login';
}
}
@ -86,6 +89,14 @@ function handleAuthenticated() {
export function handleAuthRequired() {
const token = Cookies.get(TOKEN_COOKIE_NAME);
if (token) {
const pageAfterAuth = localStorage.getItem(REDIRECT_PAGE_AFTER_AUTH);
if (pageAfterAuth) {
localStorage.removeItem(REDIRECT_PAGE_AFTER_AUTH);
window.location.href = pageAfterAuth;
return;
}
handleAuthenticated();
} else {
handleGuest();

@ -1,11 +1,13 @@
import Cookies from 'js-cookie';
import { TOKEN_COOKIE_NAME, removeAuthToken } from '../../lib/jwt';
import { REDIRECT_PAGE_AFTER_AUTH } from '../Authenticator/authenticator.ts';
export function logout() {
localStorage.removeItem(REDIRECT_PAGE_AFTER_AUTH);
removeAuthToken();
// Reloading will automatically redirect the user if required
window.location.reload();
window.location.href = '/';
}
function bindEvents() {

Loading…
Cancel
Save