背景:项目中须要用 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