扑朔迷离的NetworkImage-过期的令牌

时间:2019-04-30 02:45:08

标签: dart flutter

我正在像这样创建网络映像提供程序:

ImageProvider image = NetworkImage(
          url,
          headers: {"Authorization": "Bearer " + accessToken});

但是accessToken将在某个时刻过期。在这种情况下如何在与创建请求完全不同的位置显示图像的情况下如何刷新令牌?

1 个答案:

答案 0 :(得分:0)

一种解决方案可能是使用自定义HttpClient在后台实现令牌刷新。 HttpClient由NetworkImage内部使用,因此,如果您“覆盖”客户端,则NetworkImage会自动将其拾取。代码取自here

class MyHttpClient implements HttpClient {
  ...
  // An implementation of the HttpClient interface
  ...
}

main() {
  HttpOverrides.runZoned(() {
    ...
    // Operations will use MyHttpClient instead of the real HttpClient
    // implementation whenever HttpClient is used.
    ...
  }, createHttpClient: (SecurityContext c) => new MyHttpClient(c));
}