设为首页 收藏本站
查看: 931|回复: 0

[经验分享] nodejs 之模拟登录

[复制链接]

尚未签到

发表于 2017-2-21 10:27:45 | 显示全部楼层 |阅读模式
  最近看了 nodejs开发指南这本书,并参照着 nodejs.org官方网站中的 api,写了一个 模拟登录程序,其中有 北邮人论坛的,有 163邮箱的。其中前者 只需post就可以了,居然是明文传输,也不用https。后者选择了https,通过抓发分析,写了如下程序,另外,还学习了 通过Nodejs进行web开发,发现 nodejs真的很强大,是做服务器端开发的一款利器。
  登录北邮人的程序:

//**** 是北邮人的用户名 -----是密码
//登录 北邮人论坛
var http=require("http");
var querystring=require("querystring");
var contents=querystring.stringify({
CookieDate:0,
id:"****",
mode:0,
passwd:"-----"
});
var options={
host:"bbs.byr.cn",
path:"/user/ajax_login.json",
method:"post",
headers:{
"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",
"Content-Length":contents.length,
"Accept":"application/json, text/javascript, */*; q=0.01",
"Accept-Language":"zh-cn",
"Cache-Control":"no-cache",
"Connection":"Keep-Alive",
·"Host":"bbs.byr.cn",
"Referer":"http://bbs.byr.cn/index",
"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)",
"X-Requested-With":"XMLHttpRequest"
}
};
var req=http.request(options,function(res){
res.setEncoding("utf8");
res.on("data",function(data){
console.log(data);
});
});

req.write(contents);
req.end();
  登录163邮箱的程序:
  登录成功之后,通过抓到的cookie和 跳转的url,就可以了,下面打印出了cookie头部信息

//用户名 : *******
//密码 :------
var https=require("https");
var querystring=require("querystring");
var url="https://ssl.mail.163.com/entry/coremail/fcg/ntesdoor2?"+
"df=webmail163&from=web&funcid=loginone&iframe=1&language=-1&net=c&passtype=1&product=mail163&race=-2_60_-2_hz&style=-1&uid=*******@163.com";
var contents=querystring.stringify({
savelogin:1,
password:"------",
url2:"http://mail.163.com/errorpage/err_163.htm",
username:"*******"
});
var options={
host:"ssl.mail.163.com",
path:"/entry/coremail/fcg/ntesdoor2?df=webmail163&from=web&funcid=loginone&iframe=1&language=-1&net=c&passtype=1&product=mail163&race=-2_60_-2_hz&style=-1&uid=******@163.com",
method:"post",
headers:{
"Content-Type":"application/x-www-form-urlencoded",
"Content-Length":contents.length,
"Accept":"text/html, application/xhtml+xml, */*",
"Accept-Language":"zh-CN",
"Cache-Control":"no-cache",
"Connection":"Keep-Alive",
"Host":"ssl.mail.163.com",
"Referer":"http://mail.163.com/",
"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)"
}
};
var req=https.request(options,function(res){
res.setEncoding("utf8");
var headers=res.headers;
//console.log(headers);
var cookies=headers["set-cookie"];
cookies.forEach(function(cookie){
console.log(cookie);
});
res.on("data",function(data){
console.log(data);
});
});
req.write(contents);
req.end();

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-345141-1-1.html 上篇帖子: NodeJs中的非阻塞方法 下篇帖子: 当Shell遇上了NodeJS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表