尝试使用节点请求进行身份验证

时间:2014-10-24 20:55:16

标签: node.js authentication node-request

我正在尝试使用节点模块Request在网站上进行身份验证,并且在关注instructions后,我似乎无法弄清楚...

使用Coffeescript我已经完成了以下工作:

Request {
    url: "https://#{encodeURIComponent(config.email)}:#{encodeURIComponent(config.password)}@#{config.loginURL}"
}, (error, response, body) ->
    if error
        console.log error
    else
        console.log body

config值分别是电子邮件,密码和URL。网址为app.shopify.com/services/partners/auth/login。此外,由于用户名是电子邮件地址,我认为最好encodeURIComponent登录值。

当我运行此操作时,我没有收到错误,但body的输出只是登录页面的标记。

我也试过这样做:

Request.get config.loginURL, {
    auth: {
        username: config.email
        password: config.password
        sendImmediately: false
    }
}, (error, response, body) ->
    if error
        console.log error
    else
        console.log body

在这种情况下,由于凭据不是网址的一部分,因此我没有encodeURIComponent。此外,登录网址前面有https://

有人能引导我朝正确的方向前进吗?

1 个答案:

答案 0 :(得分:0)

如果页面未使用基本/摘要式身份验证,而是使用基于表单的身份验证,则需要POST表单值:

request(config.loginURL, {
  method: 'POST',
  form: {
    // these key names come from the `name` field in the login form's HTML
    login: config.email,
    password: config.password
  }
}, function(err, res, body) {
  // ...
});