javascript - HTTP 错误 307 - Node.js (Express)、passport.js、mongoose.js 和 Android 应用程序中的临时重定向

标签 javascript android node.js rest express

我正在使用 Node.js(Express.js 和 Moongose.js)构建 REST Api,如果用户是第一次用户(不是在数据库中可用)或登录(应用程序/登录)如果用户已经是返回用户(意味着用户在数据库中可用)。

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

// 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 应用程序)时完美运行,但在使用 android 时我得到了 HTTP 错误 307 - 临时重定向(如何修复它,应该在 Android 应用程序或 Node.js 中修复)

为什么要这样做?

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

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

谢谢

最佳答案

大部分 URL 重定向仅发生在低级别 URL 中。

此错误发生在两种情况下:- 1) Web 服务器未在 307 响应中提供替代 URL 2) 重定向总数超过5次。

如何修复它:-

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

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

关于javascript - HTTP 错误 307 - Node.js (Express)、passport.js、mongoose.js 和 Android 应用程序中的临时重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33594399/

相关文章:

javascript - React superagent 的单个文件?

javascript - 我的页面现在正在被查看吗?如何判断使用 Angular 还是普通 Javascript?

javascript - 当我将其名称作为字符串时如何执行 JavaScript 函数

javascript - 关于 Javascript 数组随机播放功能

android - AsyncTask 也在 flash 中?

android - 以编程方式创建位图掩码

java - 除了标题和代码 fragment 之外,如何在标记中包含 ID

json - 将 Mongoose 文档转换为 json

javascript - 如何在 Locomotive Js 中设置 CoffeeScript?

node.js - 如何使用 Node/Express 运行纯前端 Angular 应用程序?