[spring 팀프로젝트] - 웹사이트 제작 4-(1). 세션/쿠키

JINI·2022년 12월 7일
0
post-thumbnail

로그인 성공시 세션과 쿠키 가 생성된다.
세션이 없으면 게시판 글 작성같은 기능을 사용할 수 없다.


✂️쿠키 생성 (단❗자동 로그인 체크시에만 쿠키 생성)

쿠키 생성된 모습


🧩로그인


  1. 로그인 성공시 마이페이지로 변경

✔️2.로그인 성공시 세션/쿠키 생성

  1. 자동 로그인 기능(다음에 포스팅할 내용)

📕Controller

//로그인 성공후 메인페이지인 index로 이동
	@GetMapping("successCheckLogin")
	public String successCheckLogin(@RequestParam String id, HttpSession session, HttpServletResponse response) { //로그인 사용자라면 쿠키 응답하기
		session.setAttribute(LOGIN, id);

		//쿠키
		if(autoLogin != null) {
			int limitTime = 60*60*24*90; 
			Cookie loginCookie = new Cookie("loginCookie", session.getId()); 
			loginCookie.setPath("/"); 
			loginCookie.setMaxAge(limitTime);
			response.addCookie(loginCookie);

			//캘린더 
			Calendar calD = Calendar.getInstance();	
			calD.setTime(new Date());               
			calD.add(Calendar.MONTH,3);            
			java.sql.Date limitDate = new java.sql.Date(calD.getTimeInMillis()); 
			ms.keepLogin(session.getId(), limitDate, id);  
		}

		return "index";
	}

로그인에 성공하면 아이디를 얻어오면서 HttpSession 객체에 setAttribute을 사용해 아이디를 저장한다.

자동로그인에 체크한 사용자라면 설정값만큼 쿠키값을 가지고있다.
시간 설정, 쿠키 객체를 만들어 유일한 값으로 저장,쿠키 경로는 최상위로 잡아주고 쿠키 응답을 해준다.

캘린더 객체를 사용해 쿠키 시간을 변환해준다.
util에 있는 현재시간 date를 저장하고 현재 시간에서 3개월 후 시간을 설정했다.그 다음 현재 시간을 sql로 변환해 시간설정하고 db에 저장하기 위해 service로 메소드를 만들어 보낸다.


📕Service/serviceImpl

public memberDTO getUserSessionId(String sessionId);
public memberDTO getUserSessionId(String sessionId) {
		return memberMapper.getUserSessionId(sessionId);
	}

📕mapper.java

public memberDTO getUserSessionId(String sessionId) ;

📕mapper.xml

	<select id="getUserSessionId" resultMap="member">
		select * from box_member
		where session_id = #{sessionId}
	</select>

결과값 가져오기위해 select이용해 쿼리문을 작성한다.


profile
꾸준히 성장하는 개발자

0개의 댓글