0

我正在使用 flutter_inappwebview 插件来开发安卓浏览器。现在我需要为不同的网站(如 facebook、twitter 等)保存和自动填充登录凭据。我开始了解如何使用 flutter_secure_storage 插件安全地存储登录数据,但我对如何实现这一点一无所知。我希望此功能与 Google Chrome 中的功能完全相同。如果可以,请提供帮助...提前致谢!

4

1 回答 1

0

flutter_secure_login目前不支持 Flutter 平台 web。由于是这种情况,我建议使用shared_preferencesfound here

它与安全存储非常相似,并且可以以非常相似的方式使用

在下面的代码中,我使用它来存储我的用户数据

    // write to shared preferences
    final prefs = await SharedPreferences.getInstance();
    if (!_context.isLoggedIn) {
      if (prefs.containsKey('userData')) prefs.remove('userData');
      return;
    }

    final userData = Map<String, String>();
    userData['refreshToken'] = _refreshToken;
    userData['tenantId'] = _tenantId;
    userData['userId'] = _userId;
    await prefs.setString('userData', json.encode(userData));

然后可以访问它以刷新令牌。

Future init() async {
    final prefs = await SharedPreferences.getInstance();
    final prefData = prefs.getString('userData');
    if (prefData == null) return;
    final Map<String, Object> userData = json.decode(prefData);
    _authWriter.write({
      'refreshToken': userData['refreshToken'],
      'userId': userData['userId'],
      'tenantId': userData['tenantId']
    });
    await refreshAccessToken();
}
于 2021-02-26T20:43:53.620 回答