首页 > 解决方案 > 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);
}

}

标签: apiflutter

解决方案


获得令牌后,将其传递给以下函数。

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 );

推荐阅读