retrofit2를 사용하여 Authorization 인증하기
앱에서 서버와 통신을 할 때 사용자의 인증이 필요한 경우가 있습니다.
이럴 경우에는 해더에 Authorization를 추가하여 인증된 사용자만 정보를 취득하도록 합니다.
Authorization에도 BearerToken, ApiKey, OAuth2.0등 여러가지 종류가 있습니다.
그럼 어떻게 해더에 Authorization를 넣을까요?
제가 즐겨쓰는 retofit2와 okhttp3를 이용하여 알아보도록 할게요.
먼저 retorfit2의 custom header를 사용하여 추가하는 방법입니다.
public interface ApiService {
@Headers("Authorization: your auth token")
@GET("/test")
List<Test> getTestData();
}
또 다른 방법으로는 okhttp3의 interceptor를 이용하는 방법입니다.
val builder = OkHttpClient.Builder()
.connectTimeout(TIMEOUT_LIMIT, TimeUnit.SECONDS)
.readTimeout(TIMEOUT_LIMIT, TimeUnit.SECONDS)
.writeTimeout(TIMEOUT_LIMIT, TimeUnit.SECONDS)
.addInterceptor(HeaderInterceptor("your auth token"))
builder.build()
class HeaderInterceptor constructor(private val token: String) : Interceptor {
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
val token = "Bearer $token"
val newRequest = chain.request().newBuilder()
.addHeader("Authorization", token)
.build()
return chain.proceed(newRequest)
}
}
위의 예제를 통하여 Authorization사용해 인증된 서버통신을 하는 방법에 대해서 알아보았습니다.
출처: https://akaisun.tistory.com/72?category=622886 [아카이의 개발창고]
'안드로이드 > 개발 TIP' 카테고리의 다른 글
[Android] 안드로이드 - 문자열 배열 리소스 추가하기 <string-array> (0) | 2021.12.02 |
---|---|
[Android] 안드로이드 - 문자열 리소스를 활용한 다국어 지원 (0) | 2021.12.02 |
[Android] 안드로이드 - 익명 클래스(Anonymous Class) 사용법 (0) | 2021.11.30 |
okhttp3를 이용하여 재인증하기(refresh token) (0) | 2021.03.18 |
progress wrapper (0) | 2020.12.09 |
바코드, QR CODE 생성 및 스캐너 (0) | 2020.12.09 |
webview scroll detecting (0) | 2020.12.09 |
Room에서 LiveData사용과 paging처리 (0) | 2020.12.09 |