简体   繁体   English

Flutter安全存储

[英]Flutter Secure Storage

How to get data from secure storage in any other function not in FutureBuilder. 如何从FutureBuilder中未提供的任何其他功能中从安全存储中获取数据。

    Future<void> login() async {
      print('LOGGGGINNNNNNNNNNNN');
      print(read('TOKEN'));
    }

    Future read(String storageName) async {
      return await _storage.read(key: storageName);
    }

Print result: Instance of 'Future' 打印结果:“未来”实例

You should do this instead 你应该这样做

    Future<void> login() async {
      print('LOGGGGINNNNNNNNNNNN');
      print(await read('TOKEN'));
    }

    Future read(String storageName) async {
      return _storage.read(key: storageName);
    }

Since read returns a Future it will print what you currently see, so you need to wait its completion. 由于read返回Future,它将打印您当前看到的内容,因此您需要等待其完成。

Solution

Future readStorage(String storageName) async {
  return await _storage.read(key: storageName);
}

 Future getToken() async {
  final _storage = new FlutterSecureStorage();
  await Future.sync(()  async =>  _token = await _storage.read(key: 'TOKEN'));
 }

Future<void> login() async {
  getToken().then((value){
  print(_token);
  if(_token == 'Not Authenticated' || _token == null)
    {
      setState(() {
        _isAuthenticated = false;
      });
    }
  else {
    setState(() {
      _isAuthenticated = true;
    });
  }
});
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM