1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-08-26 18:44:57 +02:00

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

* feat: remember authenticated redirect URL after login

* feat: remember authenticated redirect URL after login
This commit is contained in:
Kamran Ahmed
2024-12-03 22:27:45 +05:00
committed by GitHub
parent a81c435500
commit 4c05f135f0
2 changed files with 15 additions and 2 deletions

View File

@@ -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();

View File

@@ -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() {