سلام رضا جان، امیدوارم حالتون خوب باشه
باید به عنوان authenticator برای okhttpClient پاسش بدیم
که به شکل زیر هست
NetworkModule with Hilt
@Provides
@Singleton
fun provideBaseAuthenticator(
@ApplicationContext context: Context
): BaseAuthenticator {
return BaseAuthenticator(context)
}
@Provides
@Singleton
fun provideClient(
loggingInterceptor: HttpLoggingInterceptor,
authenticator: BaseAuthenticator?
): OkHttpClient {
val builder = OkHttpClient.Builder()
.addInterceptor(loggingInterceptor)
.addInterceptor {
val oldRequest = it.request()
val newRequestBuilder = oldRequest.newBuilder()
if (TokenContainer.accessToken != null)
newRequestBuilder.addHeader(
"Authorization",
"Bearer ${TokenContainer.accessToken}"
)
newRequestBuilder.addHeader("Accept", "application/json")
newRequestBuilder.method(oldRequest.method, oldRequest.body)
return@addInterceptor it.proceed(newRequestBuilder.build())
}.also { okhttp ->
authenticator?.let { okhttp.authenticator(it) }
}
return builder.build()
}
که همین رو میتونید برای کوین هم بنویسید
البته که استاد انشالا در جلسات آخر راه بهبود یافته تر رو توضیح میدن
با آرزوی موفقیت