Задать вопрос
HawlPendragon
@HawlPendragon
Junior Android Developer

Как правильно работать с refresh token?

Мне нужно сделать отлов просроченного токена.Отправив 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();
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы