티스토리 뷰
728x90
1️⃣ 로그인 form
- login() 함수 실행
<form name="loginForm">
<input type="text" name="userId" placeholder="아이디를 입력해주세요.">
<input type="password" name="password" placeholder="비밀번호를 입력해주세요.">
<input type="checkbox" name="autoLogin">자동 로그인
<input type="checkbox" name="saveId">아이디 저장
<input type="checkbox" name="savePassword">비밀번호 기억
<button onClick="login()"/>로그인</button> /* login() 함수 실행*/
</form>
2️⃣ javascript
//쿠키 저장 함수
function setCookie(name, value, expiredays) {
var todayDate = new Date();
todayDate.setDate(todayDate.getDate() + expiredays);
document.cookie = name + "=" + escape(value) + "; path=/; expires="
+ todayDate.toGMTString() + ";"
}
//쿠키 불러오기 함수
function getCookie(name) {
var search = name + "=";
if (document.cookie.length > 0) { // 어떤 쿠키라도 있다면
offset = document.cookie.indexOf(search);
if (offset != -1) { // 쿠키 존재 시
offset += search.length; // 첫번째 값의 인덱스 셋팅
end = document.cookie.indexOf(";", offset); // 마지막 쿠키 값의 인덱스 셋팅
if (end == -1)
end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));
}
}
}
function login() {
if(document.loginForm.autoLogin.checked === true) { //자동로그인 체크시
//"autoLogin"이라는 키 값에 "Y" 값 셋팅
setCookie("autoLogin", "Y", 30);
//"id"라는 키 값에 form에 입력한 아이디 값 셋팅
setCookie("id", document.loginForm.userId.value, 30);
//"password"라는 키 값에 form에 입력한 비밀번호 값 셋팅
setCookie("password", document.loginForm.password.value, 30);
} else { //자동로그인 체크 해제시
//쿠키 값 제거
setCookie("autoLogin", "Y", 0);
//아이디 저장 클릭 시
if (document.loginForm.saveId.checked === true) { // 아이디 저장을 체크 하였을때
setCookie("id", document.loginForm.userId.value, 30);
} else { // 아이디 저장을 체크 하지 않았을때
setCookie("id", document.loginForm.userId.value, 0); //날짜를 0으로 저장하여 쿠키삭제
}
//비밀번호 저장 클릭 시
if(document.loginForm.savePassword.checked === true) {
setCookie("password", document.loginForm.password.value, 30);
} else {
setCookie("password", document.loginForm.password.value, 0);
}
}
//로그인 실행
document.loginForm.method="post";
document.loginForm.action="url지정";
document.loginForm.submit();
}
3️⃣ 화면 로드 시 쿠키에 저장 된 값 가져오기
window.onload = function() {
if (getCookie("id")) { //id라는 키 값이 있으면
document.loginForm.userId.value = getCookie("id"); //form의 name=userId에 값 넣기
document.loginForm.saveId.checked = true; //체크박스 체크
}
if (getCookie("password")) {
document.loginForm.password.value = getCookie("password");
document.loginForm.savePassword.checked = true;
}
//autoLogin 값 && id값 && 비밀번호가 쿠키에 저장되어있으면 로그인 함수 실행
if (getCookie("autoLogin") && getCookie("id") && getCookie("password")) {
document.loginForm.autoLogin.checked = true;
login();
}
}
'프론트엔드 > javascript' 카테고리의 다른 글
[자바스크립트] contextPath 확인하기/ axios 요청 시 "/"유무 차이점 알아보기 (0) | 2023.09.05 |
---|---|
자바스크립트 이벤트 연속으로 발생시키기 | dispatchEvent (0) | 2022.08.01 |
자바스크립트 Array 순서 변경하기 | 구조 분해 할당 (0) | 2022.07.29 |
async/await 반복문에서 사용하기 (0) | 2022.05.17 |
더블클릭시 일반클릭 이벤트 실행 막기 (0) | 2022.04.13 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 리액트
- 톰캣
- 스프링
- Linux
- 자바
- springboot
- 자바코테
- Spring
- 오토에버코테
- 코테
- 전자정부프레임워크
- java 코테
- 자바스크립트
- 현대
- Kubernetes
- softeer java
- react
- centos
- tomcat
- mysql
- 현대코테
- 현대오토에버
- 도커
- softeer
- 쿠버네티스
- 코딩테스트
- javascript
- Docker
- 아파치카프카
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함