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");
Другие вопросы по тегам