FLUTTER: как получить доступ к идентификатору сеанса и csrf из кеша json api
Пытаюсь на флаттере создать страницу регистрации. Использование пакета HTTP для отправки данных на серверную часть, и, в свою очередь, я получаю сообщение о статусе. Мне нужно получить доступ к session_id(и значению csrf), хранящемуся в кеше API, чтобы я мог установить его значение в общих предпочтениях для дальнейшего управления сеансом. мой код для публикации данных:
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 и сохранить в общих настройках, я новичок в трепетании, пожалуйста, помогите мне.
1 ответ
Если вы используете 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");