mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-08-27 02:54:27 +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 Cookies from 'js-cookie';
|
||||||
import { TOKEN_COOKIE_NAME } from '../../lib/jwt';
|
import { TOKEN_COOKIE_NAME } from '../../lib/jwt';
|
||||||
|
|
||||||
|
export const REDIRECT_PAGE_AFTER_AUTH = 'redirect_page_after_auth';
|
||||||
|
|
||||||
function easeInElement(el: Element) {
|
function easeInElement(el: Element) {
|
||||||
el.classList.add('opacity-0', 'transition-opacity', 'duration-300');
|
el.classList.add('opacity-0', 'transition-opacity', 'duration-300');
|
||||||
el.classList.remove('hidden');
|
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 the user is on an authenticated route, redirect them to the home page
|
||||||
if (authenticatedRoutes.includes(window.location.pathname)) {
|
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() {
|
export function handleAuthRequired() {
|
||||||
const token = Cookies.get(TOKEN_COOKIE_NAME);
|
const token = Cookies.get(TOKEN_COOKIE_NAME);
|
||||||
if (token) {
|
if (token) {
|
||||||
|
const pageAfterAuth = localStorage.getItem(REDIRECT_PAGE_AFTER_AUTH);
|
||||||
|
if (pageAfterAuth) {
|
||||||
|
localStorage.removeItem(REDIRECT_PAGE_AFTER_AUTH);
|
||||||
|
window.location.href = pageAfterAuth;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
handleAuthenticated();
|
handleAuthenticated();
|
||||||
} else {
|
} else {
|
||||||
handleGuest();
|
handleGuest();
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
import Cookies from 'js-cookie';
|
import Cookies from 'js-cookie';
|
||||||
import { TOKEN_COOKIE_NAME, removeAuthToken } from '../../lib/jwt';
|
import { TOKEN_COOKIE_NAME, removeAuthToken } from '../../lib/jwt';
|
||||||
|
import { REDIRECT_PAGE_AFTER_AUTH } from '../Authenticator/authenticator.ts';
|
||||||
|
|
||||||
export function logout() {
|
export function logout() {
|
||||||
|
localStorage.removeItem(REDIRECT_PAGE_AFTER_AUTH);
|
||||||
removeAuthToken();
|
removeAuthToken();
|
||||||
|
|
||||||
// Reloading will automatically redirect the user if required
|
// Reloading will automatically redirect the user if required
|
||||||
window.location.reload();
|
window.location.href = '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
function bindEvents() {
|
function bindEvents() {
|
||||||
|
Reference in New Issue
Block a user