在Node.js中通过POST请求进行身份验证

时间:2014-07-23 22:51:56

标签: node.js authentication request

我尝试通过POST请求发送用户名和密码来尝试通过节点进行身份验证,因为登录表单似乎是这样做的。使用Postman进行试用时效果很好,我已重定向到我的信息中心。

遗憾的是,用户名和密码字段未标记为用户名和密码,而是标记为j_username和j_password。

这是邮递员给我看的数据(仅供参考):

POST /path/for/auth/request HTTP/1.1
Host: site.com
Cache-Control: no-cache
Postman-Token: b6656210-caeb-2b62-d6b6-e10e642b200b
Content-Type: application/x-www-form-urlencoded
j_username=myusername&j_password=mypassword

所以我在节点中尝试这个:

var request = require('request');
request.post({
    headers: {'content-type' : 'application/x-www-form-urlencoded'},
    url:     'https://site.com/path/for/auth/request',
    body:    "j_username=myusername&j_password=mypassword"
}, function(err, res, body){
    console.log(body);
});

但不幸的是它回来了,错误被设置为空。

这里可能出现什么问题?或者有更好的方法来使用此资源进行身份验证吗?至于我可以通过标题告诉Basic Auth在这里是不可能的。

感谢。

1 个答案:

答案 0 :(得分:2)

该网站可能会向您发送HTTP 302重定向,因此这被视为成功,这就是为什么没有错误,但也没有响应机构,这就是为什么它&# 39; s"空"。您将要查看statusCode以及响应中的Location标头。