기본 v1 버전 api의 경우
/v1/join
/v1/join
"id" : "testID"
"password" : "testpw"
"phone" : "01012345678"
"sido" : "seoul"
"roadAddress" : "서울 성북구 무슨무슨가 887"
"zonecode" : "45678"
우편번호 서비스를 사용하기 쉽게 주소 잘 넣기.
Daum Postcode Service User Guide
회원 객체
주소의 경우 하나의 객체로 묶어서 저장하기
@Embeddable 과 @Embedded 사용
postMan으로 회원가입이 되는 지확인.
회원가입 테스트 완료
로그인 쪽 만들기.
로그인까지 만들고 마이페이지 이동하면 마이페이지 데이터 보여주기.
로그인의 경우 springsecurity를 사용중이기 때문에 로그인 부분은 security에서 진행.
Json을 통해 로그인을 진행할거기 때문에 fomlogin은 disabled 진행
rest api 형식으로 진행하려다보니까 기본적인 form 로그인 방식이 아닌 json 형식으로 받아서 진행하려고 한다.
그렇기 때문에 json으로 받기 위해서는 커스텀 인증 필터를 통해서 http 요청의 json 본문에서 자격 증명이 필요하다.
public class CustomAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
private final ObjectMapper objectMapper = new ObjectMapper();
public CustomAuthenticationFilter(String defaultFilterProcessesUrl){
super(defaultFilterProcessesUrl);
}
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException {
Map<String,String> authRequest = objectMapper.readValue(request.getInputStream(),Map.class);
String username = authRequest.get("username");
String password = authRequest.get("password");
UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(username,password);
return getAuthenticationManager().authenticate(authToken);
}
}
로그인 및 회원가입까지 진행되었으니 이제 메인인 상품 게시판 부분부터 상품과 주문관련해서 진행해야한다.
order 명령어를 생각하지 않고 만들려고 했던 것
로그인 시에 json 인증방식을 활용하는 방식을 처음 하다보니 filterchain을 잘못걸어서 설정을 아예 초기화시키고 다시하는 방식을 사용했다.