HTTP错误307 - Node.js(Express),passport.js,mongoose.js和Android应用程序

时间:2015-11-08 13:18:20

标签: javascript android node.js rest express

我正在使用Node.js(Express.js和Moongose.js)构建一个REST Api,如果用户是第一次使用用户,我有一个接收json的路由并将其重定向到注册(app / signup)如果用户已经是返回用户(意味着用户在数据库中可用),则可以在数据库中使用或登录(app / login)。

这是代码(我使用节点4.2.1使用ECMAScript 2015代码并使用严格模式)。

// Signup process happens here
  app.post('/signup', passport.authenticate('local-signup', {
    successRedirect: '/profile',
    failureRedirect: '/signup'
  }));

  // Hit server to login
  app.post('/login', passport.authenticate('local-login', {
    successRedirect : '/profile', // redirect to the secure profile section
    failureRedirect : '/login', // redirect back to the signup page if there is an error
    failureFlash : true // allow flash messages
  }));

并且重定向发生在此代码中。

app.post(‘/loginorsignup', (req, res) => {
    let username      =  req.body.email; // actually email used for facebook login
    let password      =  req.body.id; // actually facebook tooken id

    User.findOne({'local.username': username}, (err, user) => {
      if(err) {
        return res.json({error: {message: err}});
      }
      if(user){
        return res.redirect(307,`/login?username=${username}&password=${password}`);
      } else {
        return res.redirect(307, `/signup?username=${username}&password=${password}`);
      }
    });
  });

输入json是

{
    “email” : “some@email.com”,
    “id”: “someid” 
}

这个设置在使用postman(web api,chrome app)时工作得很好但是在使用android时我得到了 HTTP错误307 - 临时重定向(如何修复,应该在Android应用或node.js中修复)

为什么这样做?

Android应用程序使用facebook登录系统,在成功登录facebook后,它将数据发送到服务器,服务器将其存储并标记为已登录,登录用户访问许多使用passport.js验证的路径

请帮助我了解有关REST API的更多信息。如果您认为这是不好的方式,那么请提供一些链接,说明如何在REST API中处理相同的方案

谢谢

1 个答案:

答案 0 :(得分:1)

主要是重定向的网址应该只用低级网址发生。

在两种情况下会发生此错误: - 1)Web服务器没有在307响应上提供备用URL 2)重定向总数超过5。

如何修复它: -

首先,您必须检查IP名称,以便我们确定帐户是否准确。如果您的ISP配置了某些内容,则应该将对该名称的访问重定向到另一个名称,并且它应该是永久性的。您需要更新CheckUpDown帐户,以便开始使用新名称。

您需要更新新网址。如果它是临时重定向,那么您必须将原始IP名称恢复到以后的日期,以便重定向不再起作用。