繁体   English   中英

如何使用Mapbox SDK检测过期的身份验证令牌?

[英]How to detect expired authentication token with Mapbox SDK?

我正在使用Android Mapbox SDK 7.0.0,并使用给定的方法为SDK提供了身份验证令牌: Mapbox.getInstance(applicationContext, mapboxToken)

我的身份验证令牌mapboxToken运行正常,并显示了地图。

但是,如何检测身份验证令牌何时过期?

我想不定期刷新此身份验证令牌,但这也意味着Android应用程序必须检测过期的令牌才能请求新的令牌。

如果缓存中没有图块,则MapboxView会触发OnDidFailLoadingMapListener但是如果缓存中有一些图块,则将正确加载该图,不会加载新图块,也不会触发回调。

我找到了解决问题的方法。 可以覆盖Mapbox SDK的Http客户端。 该解决方法适用于Android提供的Mapbox SDK。 添加拦截器,我们可以在将响应返回给Mapbox本机库之前解释Http代码。

这是我捕获未经授权的HTTP代码的解决方法:

val client = OkHttpClient.Builder().addInterceptor { chain ->
  val response = chain.proceed(chain.request())

  if (response.code() == 401) {
    // Code that handles unauthorized Mapbox token
  }

  response
}.build()

HttpRequestImpl.setOkHttpClient(client)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM