android - OkHttp 身份验证器刷新令牌循环
问题描述
当从服务器返回 401 响应时,我在 OkHttp Authenticator 中有这段代码来刷新令牌,但是一旦返回 401,这段代码就会开始循环,每次都有新的访问和刷新令牌,知道有什么问题吗?
override fun authenticate(route: Route?, response: Response): Request? {
val refreshToken = tokenManager.getRefreshTokenFromSharedPrefs()
val refreshTokenRequest = NetworkRefreshTokenRequest(refreshToken!!)
val tokenResponse = authApi.api.refreshToken(refreshTokenRequest).execute()
return when(tokenResponse.isSuccessful){
true -> {
val tokens = tokenResponse.body()!!
Timber.tag("AUTHENTICATOR TOKEN: ").i(tokens.token)
Timber.tag("AUTHENTICATOR R_TOKEN: ").i(tokens.refreshToken)
tokenManager.saveTokensToSharedPrefs(tokens.token, tokens.refreshToken)
response.request().newBuilder().header("Authorization", "Bearer ${tokens.token}").build()
}
else -> null
}
}```
解决方案
推荐阅读
- javascript - mongoDB $unset 每个与数组中的 id 匹配的对象
- python - 无法在安卓手机上部署应用(reportlab 问题)
- node.js - 如何删除特定频道中的最后一条消息?
- python - 即使机器人重新加载,也会保留记忆角色反应消息的系统
- typescript - 打字稿的苗条事件参数类型
- javascript - 如何检查安卓设备上的元素
- javascript - 向 Spotify 发出 GET 请求
- python - 由其角点定义的边界框对象的嵌套属性
- reactjs - 类型'IntrinsicAttributes & RefAttributes 上不存在属性'item'
>'.ts(2322) - c++ - 矩阵C ++每行中的最小元素