api - Flutter - 在共享首选项的响应标头中保存令牌
问题描述
如何在下面的 sharedpreference.im 共享代码中保存在响应标头中传递的令牌:
Future<DriverModel> _handleLogin(Int country_code, Int phone, String password) async {
var jsonData = null;
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
Map data = {
'phone': {
'country_code': country_code,
'phone': phone,
},
'password': password,
};
var body = json.encode(data);
final response = await http.post(
AuthApi.login,
headers: {"Content-Type": "application/json"},
body: body,
);
if (response.statusCode == 200) {
print(response.headers.entries);
return DriverModel.fromJson(jsonData);
} else {
return DriverModel.fromJson(jsonData);
}
}
解决方案
获得令牌后,将其传递给以下函数。
updateToken(String token) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('token', token);
}
但据我所知,不应将令牌等凭据保存到共享首选项中,而应使用颤振安全存储。
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
// Create storage
final storage = new FlutterSecureStorage();
// Unique key for token
final keyToken = 'token';
// Write token value
await storage.write(key: keyToken , value: tokenValue);
// Read token value
String value = await storage.read(key: keyToken );
推荐阅读
- vue.js - 属性或方法不是在实例上定义的,而是在引用上定义的。需要建议
- java - Disable Caching When Reading from Floppy
- symfony - 在 Sylius 中覆盖 PriceHelper
- machine-learning - 样本权重如何在分类模型中发挥作用?
- javascript - 使用ajax将数据发送到rails中的控制器
- javascript - React Native 视频不会播放本地文件
- loopbackjs - 如何避免 Hyper ledger Composer Rest 服务器在升级(模型文件更改)安装的作曲家网络时重新启动?
- javascript - 任何人都可以解释如何在 jquery 中识别匹配文本吗?
- android - 如何关闭平板电脑上的手势显示导航栏
- multithreading - 如何在 autofac DI 中创建线程范围