develop > feat-auth

hyyyynjn·2021년 9월 22일
0

당나귀 프로젝트

목록 보기
6/6
post-thumbnail

develop branch > feature-auth branch 에서 개발하는 이슈들을 기록하는 페이지입니다.


자체 Auth Server

@Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
      response.setContentType("application/json");
      response.getWriter().write(convertObjectToJson(
              JWTResponseRes.builder()
                      .success(false)
                      .expired(false)
                      .message(e.getMessage())
                      .build()
      ));
}


public String convertObjectToJson(Object object) throws JsonProcessingException {
    if (object == null) {
        return null;
    }
    ObjectMapper mapper = new ObjectMapper();
    return mapper.writeValueAsString(object);
}
@Override
protected boolean shouldNotFilter(HttpServletRequest request)
  throws ServletException {
    String path = request.getRequestURI();
    return "/health".equals(path);
}
Jwts.parserBuilder()
    .setSigningKey(certificate.getPublicKey())
    .build()
    .parseClaimsJws(jwt);

Redis

HTTP header


Pull-Request

  • /api/auth/
    • 해당 url로 request 보낼 때만 JWT 토큰 유효검사 안 함
  • /api/auth/login
    • accessToken, refreshToken 를 Response body에 담아 전달 (실서비스에서는 헤더에 담아 전달할 예정)
  • /api/users 및 그 이외의 url
    • Authorization Header에 Access Token을 담아 request ("Bearer " + AccessToken 형태, "Bearer" 뒤에 공백 한 칸 붙여 보낼 것)
curl -X POST "http://localhost:8081/api/users/profile" 
-H "accept: */*" 
-H "Authorization: Bearer 토큰" 
-H "Content-Type: application/json" -d "{ \"email\": \"아이디@naver.com\"}"
  • AccessToken 이 유효할 경우 : 의도한 데이터 response
  • AccessToken 이 만료되거나 유효하지 않을 경우의 response 구조
{
  "success": false, 
  "expired": true, // 만료 여부 체크 
  "message": "에러 메시지"
}
  • AccessToken 만료 시, /api/auth/reissue url로 request 보내면 새로운 AccessToken 재발급 됨.

0개의 댓글