Koin network module SharedPreferences не обновляется значение

По логину и паролю делаю запрос на сервер и в ответ получаю токен, который сохраняю в SharedPreferences. После этого перехожу на другой экран и пытаюсь запросить данные, но получаю 401 из-за того, что токен отсутствует. Обновляется значение в SharedPreferences в NetworkModule только после перезапуска приложения. Мне необходимо его получить в текущем запуске приложения и выполнить запрос сразу после авторизации. Поэтому передаю экземпляр SharedPreferences в AuthInterceptor.

val sharedPreferencesModule = module {
    single { androidApplication().getSharedPreferences(sharedPreferences, Context.MODE_PRIVATE) }
}
val networkModule = module {
fun provideRetrofit(factory: Gson, client: OkHttpClient, sharedPreferences: SharedPreferences): Retrofit {
        val logging = if (BuildConfig.DEBUG) {
            HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)
        } else {
            HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BASIC)
        }

        return Retrofit.Builder()
            .baseUrl(BuildConfig.SERVER_URL)
            .addConverterFactory(GsonConverterFactory.create(factory))
            .addCallAdapterFactory(CoroutineCallAdapterFactory())
            .client(
                client.newBuilder()
                    .addInterceptor(logging)
                    .addInterceptor(AuthInterceptor(sharedPreferences.getString("auth_token","")))
                    .build()
            )
            .build()
    }

    single {
        provideRetrofit(
            get(),
            get(),
            androidApplication()
                .getSharedPreferences(
                    sharedPreferences,
                    Context.MODE_PRIVATE
                )
        )
    }
}

class AuthInterceptor(var token: String? = null) : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
    val authHeader = chain.request().header("Authorization")

    val request: Request = if (authHeader.isNullOrEmpty() && !token.isNullOrEmpty()) {
        chain.request().newBuilder()
            .addHeader("Authorization", "Bearer $token")
            .build()
    } else {
        chain.request()
    }

    return chain.proceed(request)
  }
}

Ответы (1 шт):

Автор решения: North Face

Eugene Krivenja подсказал найти решение в другом месте. Например, я нашёл такой вариант, который работает, где token - "Bearer $token". При такой реализации приходится в каждый запрос пробрасывать токен в качестве аргумента.

@GET("api/users/")
suspend fun getUsers(@Header("Authorization") token:String): JsonObject
→ Ссылка