如何缓存嵌入在重定向URL中的访问令牌?

我正在尝试使用本地银行的API,该银行使用OAuth2作为其授权方法。 认证过程如下: 用户单击按钮,启动应用程序内的Webview,并将用户定向到 网址A:“ https:// {API网址} / {常量键} / {重定向网址}” 然后,他们必须使用其银行凭证进行身份验证,然后下一页会提示他们键入OTP。 如果成功,会话令牌将被嵌入到重定向URL中,如下所示: 重定向网址:https:// {重定向网址} / {访问令牌} / {类型}

如何在flutter代码中将该访问令牌作为变量缓存或存储,以便可以将其用于其他API调用?我目前正在使用flutter Webview插件,并且在启动Webview并访问不同的URL时没有问题,但是我似乎找不到用于存储令牌的方法。

xieyijin 回答:如何缓存嵌入在重定向URL中的访问令牌?

用于本地存储:

您可以使用 https://pub.dev/packages/shared_preferences 来使用本机副本存储首选项。它基本上是键/值存储。

  

包装NSUserDefaults(在iOS上)和SharedPreferences(在Android上),   提供简单数据的持久存储。数据持久化到   磁盘异步。两种平台都无法保证写入会   返回后将其保留到磁盘,并且不得使用此插件   用于存储关键数据。

另一种替代方法是带有此软件包的SQLite: https://pub.dev/packages/sqflite

  

Flutter的SQLite插件。同时支持iOS和Android。

您当然也可以按照文档中所述使用Flutter的文件I / O功能: https://flutter.dev/docs/cookbook/persistence/reading-writing-files

另一种方法是使用缓存管理器软件包,该软件包将在后台与SQLlite一起使用应用程序的缓存。可能也是一种解决方案,但是操作系统可以随时删除文件。请参阅以下软件包: https://pub.dev/packages/flutter_cache_manager

用于远程存储:

然后,当然,由于大多数开发者都使用Firebase品牌的Firestore(https://firebase.google.com/docs/firestore)或Cloud Storage(https://firebase.google.com/docs/storage),因此您可以轻松地选择这种方式。当然,数据将存储在云中。不知道这是否满足您的安全要求。

最有可能我更喜欢使用首先提到的方法的本地持久性方式。

本文链接:https://www.f2er.com/3129934.html

大家都在问