sinalogin icon indicating copy to clipboard operation
sinalogin copied to clipboard

set cookie failed.

Open yakiang opened this issue 11 years ago • 20 comments

请教一下,一直报错误 set cookie failed,Error: Cookie not in this host's domain. Cookie:sina.com.cn Request:www.weibo.com。
无法保存cookie文件,请问怎么解决呢?

yakiang avatar Dec 17 '13 08:12 yakiang

好久没整这个模块,今晚回去看看,原来还有人用。。

youyudehexie avatar Dec 17 '13 09:12 youyudehexie

十分有用~ 期待回复 :)

yakiang avatar Dec 17 '13 09:12 yakiang

今晚测试过,没有问题。确定你的登陆设置不需要验证码,有验证码 可能会由错,因为验证码的情况比较复杂。show me code.

youyudehexie avatar Dec 17 '13 14:12 youyudehexie

表示完全照readme来的啊,

var sinalogin = require("sinalogin"); 
var request = require("request");

var account = { 
    name: "[email protected]", 
    passwd: "", 
    cookiefile: "cookie.txt"
}

sinalogin.weibo_login(account, function(err, loginInfo) {
    if (loginInfo.logined) {
       var j = loginInfo.j; 
    }
});

![ss](http://img1.tuchuang.org/uploads/2013/12/2013-12-17 22:24:02的屏幕截图.png)

yakiang avatar Dec 17 '13 14:12 yakiang

cookie 文件有正常生成么?尝试用request模块访问一下,微博的网页,利用cookie

youyudehexie avatar Dec 17 '13 14:12 youyudehexie

我又更新了图~运行是有错误导致退出的,所以cookie没有生成。

yakiang avatar Dec 17 '13 14:12 yakiang

我这边一直没问题,你换个系统环境看看?

hexie@hexie-N43SM:~/sandbox/test$ node app.js 不需要验证码 weibo Cookie Healthy! { name: '[email protected]', passwd: '×', cookiefile: '[email protected]', logined: true, j: { cookies: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object] ] } }

youyudehexie avatar Dec 17 '13 14:12 youyudehexie

我本机和vps都是同样的情况。。我都是现装的模块(npm install)。。
都是ubuntu

yakiang avatar Dec 17 '13 14:12 yakiang

npm install sinalogin ?

youyudehexie avatar Dec 17 '13 14:12 youyudehexie

对的,npm install sinalogin request

yakiang avatar Dec 17 '13 14:12 yakiang

很诡异。大概的原因是,request模块无法获取到你的cookie,所以在生成文件的时候出错了。。如果你不介意,可以发你的账号密码,给我这边测试一下。发到我的邮箱,github上面有

youyudehexie avatar Dec 17 '13 14:12 youyudehexie

好的

yakiang avatar Dec 17 '13 14:12 yakiang

hexie@hexie-N43SM:~/sandbox/test$ node app.js 不需要验证码 weibo Cookie Healthy! { name: '[email protected]', passwd: 'x', cookiefile: 'cookie.dat', logined: true, j: { cookies: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object] ] } }

我这边登陆没问题。。我打包发给你看看吧。

youyudehexie avatar Dec 17 '13 14:12 youyudehexie

我把你的包解压后在里面直接运行node app.js,抛出了同样的错误。。。。。

yakiang avatar Dec 17 '13 15:12 yakiang

可能是网络环境问题,是不是微博封了你?还是什么的,我觉得明天睡个觉过来看看?有时候新浪会抽风。

youyudehexie avatar Dec 17 '13 15:12 youyudehexie

我用了三个号+你的号都不行,vps是在香港的,我再尝试一下美国的vps环境。
谢谢!

yakiang avatar Dec 17 '13 15:12 yakiang

各种尝试都不行。然后发现cookie是可以获得的,就是 1 由于hostname问题吧被request判定为invalid ,
2 保存cookie时不知为何也出错,保存前输出是正常的。
所以我自己注释掉request判断hostname的几行代码,再很暴力地将cookie转换为json再保存。最后搞定了。。。过程好蛋疼

yakiang avatar Dec 17 '13 17:12 yakiang

同学,这样hack - -等你经常部署,每次修改都会产生麻烦,尝试给request 模块 发个issue,看看会不会fix。如果你也觉得是bug。

youyudehexie avatar Dec 18 '13 01:12 youyudehexie

好的~感谢帮忙:)

yakiang avatar Dec 18 '13 02:12 yakiang

Hi,我又发现即使有cookiefile那个cookie_load函数始终不会被调用,也就是说即使本地有cookie它也会尝试重新登录。。怎么回事啊。。。?

yakiang avatar Dec 18 '13 03:12 yakiang