首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FLUTTER:如何从json api的cache中访问session id和csrf

FLUTTER:如何从json api的cache中访问session id和csrf
EN

Stack Overflow用户
提问于 2020-06-29 01:25:44
回答 1查看 793关注 0票数 0

我正在尝试在flutter中创建一个注册页面。使用HTTP包将数据发送到后端,然后我会收到状态消息。我需要访问存储在API缓存中的session_id(和CSRF值),以便我可以在共享首选项中设置它的值,以便进行进一步的会话管理。我发布数据的代码是:

代码语言:javascript
运行
复制
 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还很陌生,请帮助我。

EN

回答 1

Stack Overflow用户

发布于 2020-07-24 12:18:54

如果您使用的是Laravel,请确保您的注册用户调用的端点返回会话和csrf:

代码语言:javascript
运行
复制
function register(Request $request) {
   return([ 
      "session" => $request->session()->get('key') ,
      "csrf" => csrf(),
   ]);
}

在Flutter上,照常进行注册

代码语言:javascript
运行
复制
Map res = registeruser(...);

对于用户会话,请查看FlutterSession。该软件包在Flutter中添加了对用户会话的支持,并且易于使用。

代码语言:javascript
运行
复制
// 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");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62625956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档