我的flutter应用程序正在使用刷新和访问令牌来验证对c#Web API的请求。这很完美。但是,一旦我引入android_alarm_manager对数据进行一些后台同步(使用隔离),我发现我的刷新令牌在一段时间后变得无效(我将刷新令牌存储在本地存储中)。
这是由于多个隔离同时请求一个新的访问令牌(由于隔离不共享内存,所以我无法锁定该方法)。现在,我不确定最好的方法是使令牌保持同步。
我当时在想每个隔离区都可以有自己的刷新和访问令牌,但这似乎不是一个好主意,因为我必须在本地存储用户名和密码。我的另一个想法是使用隔离通信或本地存储在隔离之间设置一些同步策略,但感觉有点过头了。
谢谢
答案 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将其发送到所有隔离物中,以使其保持同步。