Authentication 在颤栗中找到饼干

Authentication 在颤栗中找到饼干,authentication,cookies,flutter,http-post,httpcookie,Authentication,Cookies,Flutter,Http Post,Httpcookie,我使用flatter在一个网站上发布一个HTTP帖子来登录。如果我只将数据发送到登录,HTTP Post的响应显示我没有登录。我试图找出网站发送的cookie。我是用软件邮递员做的。如果我添加相同的cookie,我在Postman上得到了,带有flatter的httppost可以工作,响应显示,我登录了。过了一段时间,cookie的值被切换,通过flatter发送的HTTP Post不起作用 我如何从网站上获取有关cookie实际价值的信息 代码如下所示: Future initiate() a

我使用flatter在一个网站上发布一个HTTP帖子来登录。如果我只将数据发送到登录,HTTP Post的响应显示我没有登录。我试图找出网站发送的cookie。我是用软件邮递员做的。如果我添加相同的cookie,我在Postman上得到了,带有flatter的httppost可以工作,响应显示,我登录了。过了一段时间,cookie的值被切换,通过flatter发送的HTTP Post不起作用

我如何从网站上获取有关cookie实际价值的信息

代码如下所示:

Future initiate() async {
  ByteData bytes = await rootBundle.load('assets/Certificates/test.crt');
  SecurityContext clientContext = new SecurityContext()
    ..setTrustedCertificatesBytes(bytes.buffer.asUint8List());
  var client = new HttpClient(context: clientContext);

  IOClient ioClient = new IOClient(client);
  var form = <String, String>{
    'user':'testuser',
    'pass':'testpass',
    'logintype':'login',
    'pid':'128',
    'submit':'Anmelden',
    'tx_felogin_pi1[noredirect]':'0'
  };
  print(form);

  var ris = await ioClient.get("https://www.test.de/login");
  print(ris.headers);
  http.Response res = await ioClient.post("https://www.test.de/login",body:form, headers: {
    "Accept": "application/json",
    "Content-Type": "application/x-www-form-urlencoded", "Cookie": "fe_typo_user=12345"},  encoding: Encoding.getByName("utf-8"));
  ioClient.close();
  client.close();

  print(res.body.length);
  return res.body.contains("logout");
} 
Future initiate()异步{
ByteData bytes=wait rootBundle.load('assets/Certificates/test.crt');
SecurityContext clientContext=新SecurityContext()
..setTrustedCertificatesBytes(bytes.buffer.asUint8List());
var client=新的HttpClient(上下文:clientContext);
IOClient IOClient=新IOClient(客户端);
变量形式={
'user':'testuser',
“通过”:“测试通过”,
'logintype':'login',
“pid”:“128”,
“提交”:“安梅尔登”,
“tx_felogin_pi1[noredirect]”:“0”
};
印刷品(表格);
var ris=等待ioClient.get(“https://www.test.de/login");
打印(ris.标题);
http.Response res=wait ioClient.post(“https://www.test.de/login,正文:窗体,标题:{
“接受”:“应用程序/json”,
“内容类型”:“application/x-www-form-urlencoded”,“Cookie”:“fe_typo_user=12345”},编码:encoding.getByName(“utf-8”);
ioClient.close();
client.close();
打印(分辨率、正文、长度);
返回res.body.contains(“注销”);
} 

我就是这样得到cookie的:

static Future<String> login(String username, String password) async {
  var url = _session._getUrl('/auth/login');
  var map = new Map<String, dynamic>();
  map['username'] = username;
  map['password'] = password;
  final response = await http.post(url, body: map);
  var jsonResponse = convert.jsonDecode(response.body);
  var cookies = response.headers['set-cookie'];
  if (cookies != null) {
    var csrf = _session._getCSRF(cookies);
    LocalStorage.instance.setString('CSRF', csrf);
    print(csrf);
  }
  return jsonResponse['msg'];
}
静态未来登录(字符串用户名、字符串密码)异步{
var url=_session._getUrl('/auth/login');
var map=newmap();
映射['username']=用户名;
映射['password']=密码;
最终响应=等待http.post(url,正文:map);
var jsonResponse=convert.jsonDecode(response.body);
var cookies=response.headers['set-cookie'];
如果(cookies!=null){
var csrf=u会话getCSRF(cookies);
LocalStorage.instance.setString('CSRF',CSRF);
打印(csrf);
}
返回jsonResponse['msg'];
}

这是否回答了您的问题?