✅ 로그인 식별자 만들기

회원이 로그인 할 때는 회원만이 사용할 이름 (일반적으로 id) 가 필요하다.

 

 

 

 

@Service
public class MemberServiceImp implements MemberService {

	@Autowired
	private MemberRepository repository;

	@Override
	public Boolean inValid(String username, String password) {
		// 여기서 리파지토리에게 업무를 맡기면 안된다
		// 리파지토리에 해당되는 crud만 조회하도록 한다

//		repository.findbyId(1L);
		Member member = repository.findByNickName(username); // username은 사용자가 만든 아이디
		// 멤버 정보가 널이거나, 멤버정보가 있어도 패스워드가 맞지 않으면 리턴시킨다
		if (member == null)
			return false;
		else if (!member.getPassword().equals(password))
			return false;

		return true;
	}
}

@PostMapping("login")

public String login(String username, String password, HttpSession session) {

// 로그인을 처리하는 실질적인 코드영역

// 두가지 경로.

// 1) 가다가 걸려서 왔으면 인증하고 거기로 다시 return

// 2) 자발적으로 로그인 하러 왔으면 로그인 후 이동하는 위치 지정해주기

 

if (service.inValid(username, password)) {

session.setAttribute("username", username);

// 포스트 요청으로 온 사람은 뷰페이지로 가면 안되고 무조건 리디렉션

return "redirect:/member/index";

}

System.out.println(session.getAttribute("username"));

return "redirect:/user/login?error";

 

}

<form accept="login" method="post">
    <div th:class="${param.error}? 'd:block' : 'd:none'" style="color:red;">
    
//에러임을 알려주는 파라미터를 넣어놓으면 타임리프로 받아서 오류 문구를 표기할 수 있다(클래스 바꿔끼기)

 

 

✅ 권한

1. 인증한것만으로도 권한을 줌

2. 인증 + 권한을 둘다 감별 (인증 했구나. 그럼 너의 권한은 뭐니?) - 회원 레벨에 따라서 볼 수 있는 레벨이 다름 ▶ 오류페이지를 반환하면서 403 오류를 찍어줌

월드 와이드 웹에 쓰이는 HTTP 프로토콜에서 HTTP 403, 403 Forbidden은 서버가 허용하지 않는 웹 페이지나 미디어를 사용자가 요청할 때 웹 서버가 반환하는 HTTP 상태 코드

 

#️⃣ return URL

로그인 전에 있던 곳으로 다시 보내기 : return url

👉 폼태그 안에 hidden으로 숨겨서 returnURL 파라미터를 넘길 수 있다

 

폼태그 안에&nbsp; returnURL 숨기기
이런 형태로 만든 이유는 우리가 쓸 라이브러리가 이런 조건을 요구하기때문 !

 

 

 

 

 

 

 

 

+ Recent posts