我正在使用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中处理相同的方案
谢谢
答案 0 :(得分:1)
主要是重定向的网址应该只用低级网址发生。
在两种情况下会发生此错误: - 1)Web服务器没有在307响应上提供备用URL 2)重定向总数超过5。
如何修复它: -
首先,您必须检查IP名称,以便我们确定帐户是否准确。如果您的ISP配置了某些内容,则应该将对该名称的访问重定向到另一个名称,并且它应该是永久性的。您需要更新CheckUpDown帐户,以便开始使用新名称。
您需要更新新网址。如果它是临时重定向,那么您必须将原始IP名称恢复到以后的日期,以便重定向不再起作用。