我正在尝试在flutter中创建一个注册页面。使用HTTP包将数据发送到后端,然后我会收到状态消息。我需要访问存储在API缓存中的session_id(和CSRF值),以便我可以在共享首选项中设置它的值,以便进行进一步的会话管理。我发布数据的代码是:
Future registeruser(String firstname, String lastname,String email,String password,int
phone) async {
String apiUrl="api here";
final body ={"firstname":firstname,
"lastname":lastname,
"email":email,
"password":password,
"phone":phone,
};
final response= await http.post(apiUrl,headers:{'Content-type':
'Application/json','Accept':'Application/json'} ,body:body );
var convertedDatatoJson= jsonDecode(response.body);
return convertedDatatoJson;
}
var res =await registeruser(firstname, lastname, email, password, phone);
if(res.containsKey('status')){
setState(() {
message=res['status'];
});
if(res['status']==1){
Navigator.pop(context);
}
else{
print('error');
}
}
}}, 但我如何从API的缓存中获取数据并存储在共享首选项中,我对flutter还很陌生,请帮助我。
发布于 2020-07-24 12:18:54
如果您使用的是Laravel,请确保您的注册用户调用的端点返回会话和csrf:
function register(Request $request) {
return([
"session" => $request->session()->get('key') ,
"csrf" => csrf(),
]);
}在Flutter上,照常进行注册
Map res = registeruser(...);对于用户会话,请查看FlutterSession。该软件包在Flutter中添加了对用户会话的支持,并且易于使用。
// Store value to session
await FlutterSession().set("session", res["session"]);
await FlutterSession().set("csrf", res["csrf"]);
// Retrieve item from session
dynamic token = await FlutterSession().get("session");
dynamic token = await FlutterSession().get("csrf");https://stackoverflow.com/questions/62625956
复制相似问题