如何使用passport和backbone.js进行身份验证后向模型发送响应

时间:2013-03-09 05:29:08

标签: node.js backbone.js passport.js

要进行身份验证,我已将来自backbone.js的发布请求发送到服务器,如下所示:

model.save({"email":"sil@gmail.com","password":"silvester"}, {
   successs:function(model,res){

   },
   error:function(){

   }
});

我已收到服务器端这样的内容:

app.post('/login', passport.authenticate('local', {
    successRedirect: '/mainpage',
    failureRedirect: '/login'
}));

在上面的编码中如果身份验证成功我重定向到主页然后我试图显示另一个这样的html页面:

app.get('/mainpage',function(req,res) {
    console.log("mainpage");
    res.sendfile('/mainpage.html');
});

重定向该主页后,我得到了控制台结果,但我无法重定向到另一个网页。如何解决,然后无论如何只发送响应该帖子请求(上面提到的帖子请求)。如果我发送响应该帖子请求我可以轻松地在成功函数中收到响应然后我可以继续我的工作但是在护照中只有重定向选项,所以它会转到另一个获取请求,从这个我如何发送响应到前端?我在哪里可以收到?。如何发送没有重定向的响应以及如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

model.save会向您的服务器发出ajax请求。

我认为当你执行res.sendfile('/mainpage.html');时,它会返回ajax响应中的html页面。您可以在浏览器中查看开发者控制台吗?

你应该检查一下,如果请求是ajax,那么返回一个401 http状态代码,并使用window.location="/mainpage.html"

在客户端进行重定向

答案 1 :(得分:0)

它可以帮助您回复相同的帖子请求

  

app.post(' / login',passport.authenticate(' local',{failureRedirect:   ' /登录' }),function(req,res){       res.redirect(' /炫魅&#39); });