Authentication 在颤栗中找到饼干
我使用flatter在一个网站上发布一个HTTP帖子来登录。如果我只将数据发送到登录,HTTP Post的响应显示我没有登录。我试图找出网站发送的cookie。我是用软件邮递员做的。如果我添加相同的cookie,我在Postman上得到了,带有flatter的httppost可以工作,响应显示,我登录了。过了一段时间,cookie的值被切换,通过flatter发送的HTTP Post不起作用 我如何从网站上获取有关cookie实际价值的信息 代码如下所示: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
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'];
}
这是否回答了您的问题?