flutter - 如何从主隔离和后台隔离刷新和共享访问令牌
问题描述
我的颤振应用程序正在使用刷新和访问令牌来验证对 ac# Web API 的请求。这完美地工作。但是,一旦我引入 android_alarm_manager 来进行数据的一些后台同步(使用隔离),我发现我的刷新令牌在一段时间后变得无效(我将刷新令牌存储在本地存储中)。
这是由于多个隔离同时请求新的访问令牌(由于隔离不共享内存,我无法锁定该方法)。现在我不确定保持令牌同步的最佳方法是什么。
我在想每个隔离都可以有自己的刷新和访问令牌,但这似乎不是一个好主意,因为我必须在本地存储用户名和密码。我的另一个想法是使用隔离通信或本地存储在隔离之间设置一些同步策略,但感觉有点矫枉过正。
谢谢
解决方案
看一下 Flutter 地理围栏示例:
回购:https ://github.com/bkonyi/FlutterGeofencing/tree/master/lib/src 文章:https ://medium.com/flutter/executing-dart-in-the-background-with-flutter-plugins-and -地理围栏-2b3e40a1a124
它使用 SendPorts 跨隔离区进行通信,这听起来像您需要的:
https://api.flutter.dev/flutter/dart-ui/IsolateNameServer-class.html
然后,您可以更新任何隔离区中的令牌并通过 SendPort 将其发送到所有隔离区以保持同步。
推荐阅读
- mysql - MySQL Date_Format 在 Excel 中返回“i”
- c++ - 将程序从 x86 转换为 x64
- apache-kafka - 如何通过 Flume 向 kafka 发送键值
- php - “CVE-2018-5712”在PHP变更日志中多次出现,这让我很困惑
- python - 如果在 os._exit() 之前不关闭套接字会发生什么?
- python - 将 python 3.8 文件转换为 .exe
- python - Django 模板中需要所有者
- vba - 更改组中线条的颜色
- python - 光谱峰值插值的函数或算法
- laravel - 如何在 KENDO GRID 中将我的 JSON 数据解析为字符串?