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

    HawlPendragon
    @HawlPendragon Автор вопроса
    Юрий,
    Я написал такой Интерсептор без создания отдельного класса
    Что я там должен указать после запятой ? Все то что требует от меня сервер для получения нового токена ? (В моем случае это 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();
  • Как правильно работать с refresh token в android разработке?

    HawlPendragon
    @HawlPendragon Автор вопроса
    У меня есть интерсептор для работы с Авторизации через токен.В нем сделать ?

    class AccessTokenInterceptor constructor(
            private val preferences: SharedPreferences) : Interceptor {
    
        override fun intercept(chain: Interceptor.Chain): Response {
    
            val token: String? = preferences.getString("access_token", null)
            return if (token!=null) {
                val request:Request = requestWithAuth(chain.request(), token)
                chain.proceed(request)
            } else {
                chain.proceed(chain.request())
            }
    
        }
    }
    
    private fun requestWithAuth (request: Request,accessToken:String): Request{
        return request.newBuilder()
                .addHeader("Authorization", "Bearer $accessToken")
                .build()
    
    }