Retrofit을 통해 서버와 통신을 할 때, 유저 인증 토큰이 필요한 경우가 있습니다. 예를들어 로그인을 해야지만 페이지를 볼 수 있는 화면이 있다고 할때, Retrofit에 Header
를 추가하여 인증받는 방법에 대해 알아보겠습니다.
서버에서 헤더를 인식하게 해놨을 때, 앱에서 해야할 일은 단순히 Retrofit 에 헤더를 추가하여 요청을 보내는 것입니다.
저는 아래와 같이 Retrofit 클래스를 하나 만들었고, 클래스 생성 시 authToken
String값을 받게 해놨습니다. 헤더 보내는 구간의 key, value 값에 맞춰서 적절히 설정만 해주시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | public class RetrofitConnection { String URL = "YOUR_SERVER_URL"; private String authToken; public RetrofitConnection(String authToken) { this.authToken = authToken; } OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request newRequest = chain.request().newBuilder() .addHeader("key", authToken) .build(); return chain.proceed(newRequest); } }).build(); Retrofit retrofit = new Retrofit.Builder() .client(client) .baseUrl(URL) .addConverterFactory(GsonConverterFactory.create()) .build(); RetrofitInterface server = retrofit.create(RetrofitInterface.class); } | cs |
'Developer > Android, Java' 카테고리의 다른 글
[안드로이드] 지하철 역 클릭 시 이벤트 구현하기 2편 (4) | 2019.12.02 |
---|---|
[안드로이드] Fragment 로 데이터 전달하기 (262) | 2019.05.23 |
[안드로이드] View 터치 시 터치 이벤트 구현하기 (266) | 2019.05.22 |
[안드로이드] ArrayList<Object> 인텐트 넘기는 방법 (284) | 2019.05.22 |
[안드로이드] ScrollView 안에 RecyclerView 을 넣을 수 있나요? (281) | 2019.05.22 |
댓글