android - Flutter:如何在两个单独的android应用之间安全地共享数据?

标签 android flutter dart jwt-auth

我需要在android上的两个独立应用之间共享一些特定数据,
最好制作某种共享文件夹,只能由两个应用程序访问。

为什么?我需要两个单独的应用程序之间的单一登录功能。

到目前为止,我一直在通过使用JWT token 对用户进行身份验证,方法是将它们存储在sharedpreferences中(存储它们以维护登录),并在用户注销时清除共享首选项(以及点击更改 token 的api)。

现在,我有另一个使用相同 token 的应用程序。

要求:您登录一个,然后另一个人自动登录。因此,我的计划是将 token 存储在设备上,然后两个应用程序都可以访问该 token 。

我知道我需要一个 Activity 目录来获得安全的SSO,但我现在还没有100%的安全性,这仍然是个问题,仍然是如何在应用程序之间共享数据。

最佳答案

我只是给你一个想法,更不用说这个了,仅在Android中有效。

  • 在第一个应用程序(主)中,使用path_provider在设备外部存储中创建一个文件(目前,我正在创建一个.txt文件),
    Future<void> _createAndWrite() async {
      // Get external directory
      final directory = (await Directory('storage/emulated/0/Sharing Folder').create()).path;
    
      // Create your file
      final file = File('$directory/any_file.txt');
      await file.create();
    
      // Write to the file
      await file.writeAsString('Content to write');
    }
    
  • 在您的第二个应用程序中,您可以使用以下内容读取文件的内容:
    Future<void> _readFile() async {
      // Get external directory
      final directory = (await Directory('storage/emulated/0/Sharing Folder').create()).path;
    
      // Get the file
      final file = File('$directory/any_file.txt');
    
      // Read it
      final content = await file.readAsString();
    }
    

  • 确保在两个应用程序中都声明了以下权限:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    

    关于android - Flutter:如何在两个单独的android应用之间安全地共享数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62016073/

    相关文章:

    android - 有人知道如何正确使用 onActivityReenter 吗?

    javascript - Node.js 中的套接字与 Dart 中的套接字

    flutter - Flutter-使用MultiBlocProvider但无法在子屏幕上呈现BlocListener

    list - 如何按另一个列表对列表进行排序

    android - Google Maps V3 的自定义平移方法

    java - 如何在android中创建水平滚动分组条形图

    android - 抽屉导航 fragment 中不显示汉堡包图标

    dart - 如何将小部件放置在行中包含的卡片内?

    flutter - 如何更改flutter桌面中的标题栏图标

    node.js - 无法通过nodejs和flutter使用预先签名的url在aws s3上上传图像