request cookie 模拟登陆

//密码加密模块
let CryptoJS = require("crypto-js");
let request = require("request");
//登陆的用户邮箱和密码
let user = {
  UserName: "admin",
  Password: "admin",
};
//登陆post的所有数据
let datas = {
  UserName: user.UserName,
  //https请求需要加密密码
  // Password: CryptoJS.SHA1(user.Password).toString(),
  Password: user.Password,
};

let opts = {
  url: "http://localhost:5000/Login?ReturnUrl=%2F",
  method: "POST",
  headers: {
    "User-Agent": `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36`,
  },
  form: datas,
};

//模拟登陆

request(opts, (e, r, b) => {
  console.log(b);
  let opts2 = {
    url: "http://localhost:5000/",
    method: "GET",
    headers: {
      "User-Agent": `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36`,
      Cookie: r.headers["set-cookie"], //这里是登陆后得到的cookie,(重点)
    },
  };
  request(opts2, (e2, r2, b2) => {
    console.log(b2);
    console.log("是否登陆成功:", b2.indexOf("<h1>Blog</h1>") > 0);
  });
});


这种方式无法绕过带有token验证的form表单


作者:spike

分类: Nodejs

创作时间:2023-06-25

更新时间:2024-12-09

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1