Front/JS & jQuery

[js] redirect 사용하기

오선지♬ 2024. 5. 18. 10:32
728x90
반응형

페이지에 토큰인증을 받지않고, url로 바로 접속 했을 때, 로그인 페이지로 이동 => 로그인을 하면 접속하려했던 url로 이동시키는 기능 구현하려고 한다.

1. url로 접속했을 때

const _rollback = () => {
    // 현재 페이지의 URL을 가져옴
    const currentPageUrl = window.location.href;
    
    // 만약 직접 로그인 페이지로 접근했다면 이전 페이지의 URL을 전달하지 않음
    if (!currentPageUrl.includes("/login/")) {
        // 로그인 페이지로 리다이렉트할 때 이전 페이지의 URL을 쿼리 문자열에 포함시켜 전달
        const loginUrl = "/login/?redirect=" + encodeURIComponent(currentPageUrl);
        
        // 리다이렉트
        location.replace(loginUrl);
    } else {
        // 직접 로그인 페이지로 접근한 경우, 그냥 로그인 페이지로 이동
        location.replace("/login/");
    }
}

 

2. 로그인 페이지로 이동 후 로그인 시도했을 때

// 현재 페이지의 URL을 가져옴
const currentPageUrl = window.location.href;

// 현재 페이지의 URL에서 'redirect' 파라미터를 찾아 추출
const params = new URLSearchParams(window.location.search);
const redirectUrl = params.get('redirect');

// 만약 'redirect' 파라미터가 존재한다면, 해당 URL을 리다이렉트할 주소로 사용
if (redirectUrl) {
    location.replace(redirectUrl);
} else {
    // 'redirect' 파라미터가 존재하지 않는 경우, 기본적으로 지정된 페이지로 이동
    const defaultRedirectUrl = "/home/";
    location.replace(defaultRedirectUrl);
}
728x90
반응형