小编Aja*_*hel的帖子

如何使用 okhttp 身份验证器一次多次请求刷新令牌

我在我的项目中使用改造进行网络连接。问题是我必须从我的第一个活动中调用 2 个请求。它工作正常,但是当访问令牌过期时,它必须刷新令牌。我已经使用 okhttp Authenticator 实现了一个调用。但是它多次调用并且这个错误也显示出来too many followup request 21

编辑 我更新了 TokenAuthenticator 类并添加了 synchronized()。但它是从if (originalRequest.header("Authorization") != null) return null. 我正在关注这个答案/sf/answers/3675918571/

如果我要删除if (originalRequest.header("Authorization") != null) return null此行,则它可以正常工作,但在日志报告中,我看到它多次调用刷新令牌。我怎样才能避免这种多次调用?

这是我的 Authenticator 类

class TokenAuthenticator : Authenticator {

private val refreshTokenGrandType = "refresh_token"
private var oldToken: String? = null
private var newToken: String? = null

override fun authenticate(route: Route?, response: Response?): Request? {
    oldToken = SharedPreferenceManager(MainApplication.applicationContext()).getToken()
    if (response == null) return null
    val originalRequest = response.request()
    if …
Run Code Online (Sandbox Code Playgroud)

android oauth kotlin retrofit okhttp

5
推荐指数
0
解决办法
4626
查看次数

标签 统计

android ×1

kotlin ×1

oauth ×1

okhttp ×1

retrofit ×1