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:
@@ -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() {
|
||||
|
Reference in New Issue
Block a user