[GCMS] - 자동 로그인 로직

박성현·2023년 5월 1일
0

MSG_GCMS

목록 보기
1/1

소개

MSG라는 교내 동아리에서 만든 GCMS(교내 동아리 관리 시스템)을 유지보수 하면서 일어났던 일을 정리한 내용입니다.


문제상황

수정하기 전 자동 로그인 로직은 accessToken이 만료된다면 로그인을 다시 해서 토큰을 갱신시켜줬어야했다.


작업내용

  • 만약 accessToken이 만료된다면 accessToken을 재발급받아서 로그인을 다시 할 필요없게 만들어줬다.

  • token을 받아서 바로 요청보내면 400(Bad Request)가 발생하여 JSONObject에 담아서 보내줬다.


주요코드

  • accessToken 재발급 코드
val reAccessToken = authDataStorage.getAccessToken()
                val reAccessRequest = chain.request()
                    .newBuilder()
                    .addHeader("Authorization", "Bearer $reAccessToken")
                    .build()
                return chain.proceed(reAccessRequest)
  • RefreshRequest.toRequestBody() 로직 변경
    • JSONObject에 넣어준 이유는 body를 JSON 형식으로 보내기 위해서이다.
fun RefreshRequest.toRequestBody() =
    JSONObject().apply {
        put("token", this@toRequestBody.token)
    }.toString().toRequestBody("application/json".toMediaTypeOrNull())

MSG 깃허브

GCMS-Android 깃허브

작업한 PR

profile
성장하고 싶은 안드로이드 개발자입니다.

0개의 댓글

관련 채용 정보