๐ฒ ์ค๋์ ๊ฐ๋ฐ ์ผ์ง
- ์ค๋๋ ์๋ฒ์ ํต์ ํ๋ฉด์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. IllegalArgumentException์ด ๋ด์๋๋ฐ ๋ณ์๋ช
๋ถํฐ ํด์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ธํด๋ดค์ง๋ง ๊ทธ๋๋ ์๋๋ค.
- ์๊ณ ๋ณด๋ api ํธ์ถํจ์๋ฅผ suspend ํจ์๋ก ์ค์ ํ์ง ์์์ ๋ฐ์ํ๋ ์ค๋ฅ์๋ค.
- ๊ฒ์ํ์ ๋ api ํธ์ถํ ๋๋ suspend ํจ์๋ก ํธ์ถํด์ผ ํ๋ค๋ ๊ธ์ ๋ดค๋๋ฐ ์ ๊ทธ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.
- ์๋ง ์ฝ๋ฃจํด์ ์ฌ์ฉํ๋ฉด์ ์ฝ๋ ๋์ ์์์์ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ ๊ฐ๋ค.
- ์ฐ๋ฉด์ ๋๋๊ฑฐ์ง๋ง ์ฝ๋ฃจํด์ ์ฌ์ฉํ๊ธฐ์ ์์ง ๋๋ฌด ๋ชจ๋ฅด๋ ๊ฒ ๊ฐ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ค๋ ์ฒ์ ์ ์ฌ์ค์ด ์๋ค. @Body ํํ๋ก String ๊ฐ์ ๋ณด๋ด๋๋ฐ postman์ด๋ swagger๋ก ํ
์คํธํ ๋ json ํํ๋ก key ๊ฐ์ ์ค์ ํด์ ๋ณด๋ด๋ฉด ์๋๋ค.
- ์๋ง ๋ณดํต @Body๋ก ๋ณด๋ผ ๋ ๊ฐ์ฒด๋ฅผ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ๋ณ์๋ช ์ key ๊ฐ์ผ๋ก ํ์ง๋ง String ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ณ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ String ๊ฐ๋ง ๋ณด๋ด๋ ๊ฒ ๊ฐ๋ค.
Interceptor ํด๋์ค์ intercept ํจ์์์ api ๊ฒฝ๋ก๊ฐ์ ๋ฐ๋ผ header๋ฅผ ์ค์ ํ ์ ์๋ค.
1 2 3 4 5 6 7 8 9
private val noJwtUrls = arrayListOf("/api/user/kakao/login", "/api/user/naver/login") val url = chain.request().url.encodedPath Log.d(TAG, "intercept url: $url") if(noJwtUrls.contains(url)) { Log.d(TAG, "intercept: No JWT") return chain.proceed(chain.request().newBuilder() .build()) }
์ฌ๊ธฐ์๋ noJwtUrls ๋ฐฐ์ด ์์ ์๋ ๊ฒฝ๋ก ์ค ํ๋๋ฉด Header๋ฅผ ์ ๋ถ์ด๋๋ก ํ๋ค.
- LoginActivity์์ ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด MainActivity๋ฅผ ๋์ฐ๊ณ MainActivity์์ ๋ค๋ก๊ฐ๊ธฐ๋ฅผ ๋๋ฅด๋ฉด ์ฑ์ด ์ข
๋ฃ๋๋๋ก LoginActivity๋ฅผ Task์์ ์ญ์ ํ๊ณ MainActivity๋ฅผ ํธ์ถํ๊ณ ์ถ์๋ค.
1
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent์ flag ๊ฐ๋ค์ ์์ฒ๋ผ ์ค์ ํ์ฌ ํด๊ฒฐํ๋ค.