node 做为客户端模拟用户登陆

背景:项目中须要用 node 做为客户端发送请求,可是须要登陆认证后才能发送请求。平时,咱们都是经过浏览器的 cookie 服务端去判断登陆状态,那么如何用 node 模拟用户登陆,请求携带 cookie 信息?node

解决方法:浏览器

1.模拟用户在客户端登陆获取 cookiebash

let request = require('request');
//登录post地址
let url = '......../login'; // login 请求地址

//登录的用户名和密码
let user = {
  username: 'xxx',
  password: 'xxx'
};

//设置头部 (模拟浏览器请求)
let 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`,
};

let opts = {
  url: url,
  method: 'POST',
  headers: headers,
  form: user,
};

//模拟登录
request(opts, (e, r, b) => {
  console.log(r.headers['set-cookie']); //这里是登录后获得的cookie,(重点)
});
复制代码

2.发送请求携带 cookie 信息cookie

var request = require('request');

let opts = {
  url: 'xxxxx', // 请求 url
  headers: {
    Cookie: 刚刚获取到的 cookie 值,
  }
};

request(opts, function(error, response, body) {})复制代码

ok!大功告成~post

参考连接ui

相关文章
相关标签/搜索