Мне нужно сделать отлов просроченного токена.Отправив refreshToken и взамен получить новые access_token и refresh_token.
Ниже я выложил код который я собираюсь применить.Он написан не до конца.Потому что я не до конца все понимаю.
@FormUrlEncoded
@POST("/api/o/token/")
Call<TokenModel> getToken(
@Field("username") String username,
@Field("password") String password,
@Field("client_id") String clientId,
@Field("client_secret") String clientSecret,
@Field("grant_type") String grantType
);
@FormUrlEncoded
@POST("/api/o/token/")
Call<TokenModel> getNewToken(
@Field("refresh_token") String refreshToken,
@Field("client_id") String clientId,
@Field("client_secret") String clientSecret,
@Field("grant_type") String grantType
);
@GET("/api/users/profile")
Call<UserProfile> getProfile();
Я указал знак вопроса там где я конкретно не понимаю
Я просто не совсем разобрался с Хэдером. Что я там должен указать после запятой ? Все то что требует от меня сервер для получения нового токена ? (В моем случае это String refreshToken,String clientId,String clientSecret,String grantType) Или нет ?
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(logging)
.addInterceptor(new AccessTokenInterceptor(preferences))
.addInterceptor(new Interceptor() {
@NotNull
@Override
public Response intercept(@NotNull Chain chain) throws IOException {
Request original = chain.request();
Request request = original.newBuilder()
.header("Authorization", ?)
.method(original.method(), original.body())
.build();
Response response = chain.proceed(request);
Log.d("MyApp", "Code : "+response.code());
if (response.code() == 401){
?
return response;
}
return response;
}
})
.build();