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
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[jQeury] offset() (0) | 2024.05.27 |
---|---|
[jQuery] datatables columnDefs targets에 작성가능한 데이터 종류정리 (0) | 2024.05.22 |
[jQuery][daterangepicker] 원하는 날짜 초기화 (0) | 2024.05.17 |
[js] window.location.search (0) | 2024.05.16 |
[js] URLSearchParams (0) | 2024.05.15 |