在flutter inappWebview中自动填充登录凭据

Posted

技术标签:

【中文标题】在flutter inappWebview中自动填充登录凭据【英文标题】:Autofill login credentials in flutter inappWebview 【发布时间】:2021-05-29 04:53:56 【问题描述】:

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

【问题讨论】:

【参考方案1】:

flutter_secure_login 目前不支持 Flutter 平台 web。 既然是这种情况,我建议使用 shared_preferences found 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();

【讨论】:

Soory 实际上我想知道当用户再次返回同一站点时,我如何获取、保存和使用凭据进行自动填充。我正在考虑webview 我希望此功能与 Google Chrome 中的功能完全相同

以上是关于在flutter inappWebview中自动填充登录凭据的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一个inappwebview Flutter中打开弹窗?

Flutter 加载url flutter_inappwebview

Flutter - InAppWebView 中的 Jitsi Meet 回调

inappwebview 中的flutter_problem

java.lang.IllegalStateException:尝试创建未注册类型的平台视图:com.pichillilorenzo/flutter_inappwebview

Flutter Build Fails: InAppWebView error: package okhttp3 does not exist