inblog logo
|
[HootJem] 개발 기록 블로그
    flutter

    JWT 로그인 하기(1)

    핸드폰에 JWT 저장 하는 위치와 Spring REST Docs 을 활용한 API 문서 확인
    HootJem's avatar
    HootJem
    Oct 15, 2024
    JWT 로그인 하기(1)
    Contents
    1. JWT 저장 위치1-1. JWT 확인2. 테스트 코드

    1. JWT 저장 위치

    JWT 는 핸드폰의 하드와 메모리에 저장한다. 이는 핸드폰이 서버와 연결할 때 (통신) 메모리에 있는 토큰에 접근하기가 쉽기 때문이다.
     
    메모리에 있는 토큰은 앱 종료시 사라진다. 그러나 다음번 앱 접속 시 하드의 토큰을 확인하여 계속 로그인이 유지되거나, 로그인이 해제된다.
     

    1-1. JWT 확인

    notion image
    notion image
    Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpbWdVcmwiOiIvaW1hZ2VzLzEucG5nIiwic3ViIjoibWV0YWNvZGluZyIsImlkIjoxLCJleHAiOjE3MjkxMzMwNzksInVzZXJuYW1lIjoic3NhciJ9.WDrMaEzu53ndfUzsU0wvXYba_Hei5GfyS3av8qgTDaNkfrz04VboUrgWXm9kj-RIqba6lBHmg8JoyH0eC3xdjg
     

    2. 테스트 코드

    @Test public void join_test() throws Exception { String fakeBase64Image = "data:image/jpg;base64," + RandomStringUtils.randomAlphanumeric(1000); UserRequest.JoinDTO joinDTO = new UserRequest.JoinDTO(); joinDTO.setUsername("hello"); joinDTO.setPassword("1234"); joinDTO.setEmail("hello@nate.com"); joinDTO.setImgBase64(fakeBase64Image); String requestBody = om.writeValueAsString(joinDTO); System.out.println(requestBody); ResultActions resultActions = mvc.perform( post("/join").content(requestBody).contentType(MediaType.APPLICATION_JSON) ); // console String responseBody = resultActions.andReturn().getResponse().getContentAsString(); System.out.println("테스트 : " + responseBody); // verify resultActions.andExpect(jsonPath("$.success").value("true")); resultActions.andExpect(jsonPath("$.response.id").value(4)); resultActions.andExpect(jsonPath("$.response.username").value("hello")); resultActions.andExpect(jsonPath("$.response.imgUrl").value(Matchers.endsWith(".jpg"))); resultActions.andExpect(jsonPath("$.status").value(200)); resultActions.andExpect(jsonPath("$.errorMessage").isEmpty()); resultActions.andDo(MockMvcResultHandlers.print()); resultActions.andDo(document); }
    • SpringBootTest 가짜 서버에 띄워서 전체 점증하는 어노테이션. Mock 이라는 가상의 서버에 들어있다.
    • $ → 중괄호 최상단. 을 의미한다.
    • restdocs 은 통합 테스트 코드를 넣으면 기존 코드를 건들이지 않아도 api 문서가 나온다.
    • http://localhost:8080/docs/api.html
    notion image
     
    Share article
    Contents
    1. JWT 저장 위치1-1. JWT 확인2. 테스트 코드

    [HootJem] 개발 기록 블로그

    RSS·Powered by Inblog