如何从主要隔离区和背景隔离区刷新和共享访问令牌

时间:2019-05-23 12:52:07

标签: flutter refresh-token dart-isolates

我的flutter应用程序正在使用刷新和访问令牌来验证对c#Web API的请求。这很完美。但是,一旦我引入android_alarm_manager对数据进行一些后台同步(使用隔离),我发现我的刷新令牌在一段时间后变得无效(我将刷新令牌存储在本地存储中)。

这是由于多个隔离同时请求一个新的访问令牌(由于隔离不共享内存,所以我无法锁定该方法)。现在,我不确定最好的方法是使令牌保持同步。

我当时在想每个隔离区都可以有自己的刷新和访问令牌,但这似乎不是一个好主意,因为我必须在本地存储用户名和密码。我的另一个想法是使用隔离通​​信或本地存储在隔离之间设置一些同步策略,但感觉有点过头了。

谢谢

1 个答案:

答案 0 :(得分:0)

看看Flutter Geofencing示例:

回购:https://github.com/bkonyi/FlutterGeofencing/tree/master/lib/src 文章:https://medium.com/flutter/executing-dart-in-the-background-with-flutter-plugins-and-geofencing-2b3e40a1a124

它使用SendPorts跨隔离通信,听起来像您所需要的:

https://api.flutter.dev/flutter/dart-ui/IsolateNameServer-class.html

然后您可以更新任何隔离物中的令牌,并通过SendPort将其发送到所有隔离物中,以使其保持同步。