场景:正式token失效获取匿名token登录或者既没有正式token也没有匿名token时使用:
override fun intercept(chain: Interceptor.Chain): Response {
val accessToken = //our access Token
val request = chain.request().newBuilder()
.addHeader("Authorization", accessToken)
.build()
val response = chain.proceed(request)
//token错误码
if (response.code() == 401) {
// 可以通过chain.request(获取匿名token接口获取匿名token) --> newToken
val newToken: String = //fetch from some other source
if (newToken != null) {
val newRequest = chain.request().newBuilder()
.addHeader("Authorization", newToken)
.build()
return chain.proceed(newRequest)
}
}
return response
}