【发布时间】:2021-10-28 19:37:01
【问题描述】:
我正在使用 Hilt 进行依赖注入。我正在尝试实现一个 oauth 拦截器,它将在登录后对我的请求进行身份验证。
我遇到的问题与oauthManager(context).getToken() 等有关。OauthManager 本质上只是一个用于访问EncryptedSharedPreferences 的类。但是由于我的提供方法是Singleton,所以我对共享首选项所做的任何更新都不会反映到我的 okhttp 实例中。
应用程序开始时未经过身份验证,稍后会变为。我可能可以使用像ViewModelScoped 这样的另一个范围来解决这个问题,但我想知道是否有更好的方法来更新 oauth 凭据。
@Singleton
@Provides
@Named(NAME_WITH_OAUTH)
fun provideOkHttp(
@ApplicationContext context: Context
) = OkHttpClient
.Builder()
.addInterceptor(
OauthInterceptor(
consumerKey = Constants.CONSUMER_KEY,
consumerSecret = Constants.CONSUMER_SECRET,
accessToken = oauthManager(context).getToken(),
accessSecret = oauthManager(context).getSecret(),
verifier = oauthManager(context).getVerifier()
)
)
.build()
提前致谢!
【问题讨论】:
标签: android oauth retrofit dagger-hilt