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