Можно ли использовать Retrofit для автоматической обработки истекших токенов при выполнении API-запросов?

Retrofit сам по себе не предоставляет встроенного механизма для автоматической обработки истекших токенов (например, обновления токена при получении 401 Unauthorized).

Короткий ответ

Что ответить на собеседовании

Retrofit сам по себе не предоставляет встроенного механизма для автоматической обработки истекших токенов (например, обновления токена при получении 401 Unauthorized). Однако, это можно реализовать с помощью кастомного OkHttp интерсептора, который перехватывает ответы, проверяет код ошибки и при необходимости выполняет логику обновления токена и повторного запроса.

Подробный разбор

Ответ с пояснениями

Retrofit сам по себе не предоставляет встроенного механизма для автоматической обработки истекших токенов (например, обновления токена при получении 401 Unauthorized). Однако, это можно реализовать с помощью кастомного OkHttp интерсептора, который перехватывает ответы, проверяет код ошибки и при необходимости выполняет логику обновления токена и повторного запроса.

Пример использования интерсептора для обновления токена:

class AuthInterceptor(private val tokenProvider: TokenProvider) : Interceptor {
    override fun intercept(chain: Interceptor.Chain): Response {
        var request = chain.request().newBuilder()
            .addHeader("Authorization", "Bearer ${tokenProvider.getAccessToken()}")
            .build()

        val response = chain.proceed(request)

        if (response.code == 401) { // токен истек
            synchronized(this) {
                val newToken = tokenProvider.refreshToken() // обновляем токен
                request = chain.request().newBuilder()
                    .header("Authorization", "Bearer $newToken")
                    .build()
                return chain.proceed(request) // повторяем запрос с новым токеном
            }
        }

        return response
    }
}

Таким образом, Retrofit в связке с OkHttp интерсепторами позволяет реализовать автоматическую обработку истекших токенов.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку