【问题标题】:trying store token in shared preferences but not working尝试在共享首选项中存储令牌但不工作
【发布时间】:2021-06-02 11:35:00
【问题描述】:

在颤振项目中,我试图将令牌和用户 ID 存储在共享首选项中,但它不起作用!令牌是字符串,用户 ID 是整数,谁能帮忙?

final responseData = json.decode(response.body);
      if (responseData['login_token'] != null) {
        _token = responseData['login_token'];
        _userID = int.parse(responseData['account_id']);
      }
      final prefs = await SharedPreferences.getInstance();
      final userData = json.encode({'userId': _userID, 'token': _token});
      prefs.setString('userData', userData);

      final extractData =
          json.decode(prefs.getString('userData')) as Map<String, dynamic>;

      if (extractData['userId']) {
        _userID = int.parse(extractData['userId']);
        print("id2" + _userID.toString());
        _token = extractData['token'];
        print('token is:' + _token);
      }

【问题讨论】:

    标签: api flutter dart sharedpreferences token


    【解决方案1】:

    shared_preferences插件异步保存数据。因此,如果您想立即获得保存的值,您应该在 prefs.setString() 之前添加 await 到您的示例中:

          await prefs.setString('userData', userData);
          final extractData =
              json.decode(prefs.getString('userData')) as Map<String, dynamic>;
    

    顺便说一下,考虑使用flutter_secure_storage 来存储访问令牌等敏感数据。我不确定您的令牌是否是秘密的,请考虑一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-15
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多