使用Passport在Stack MEAN

时间:2017-01-31 15:55:03

标签: angularjs node.js mongodb authentication passport.js

我在前端使用AngularJS创建了两个使用单个API(NodeJS,Express和MongoDB)的应用程序。

在尝试保护资源时,我需要将我的/routes/auth.js中包含的express / auth / github / callback中的路由重定向到前端路由,以防我的用户需要的页面(视图)经过验证。

当我将前端与后端分开时,调用/ auth / github / callback路由successRedirect最终会重定向到' /' API的路由(后端)。

遵循以下代码:

app.get('/auth/github/callback',
    passport.authenticate('github', {
        successRedirect: '/',
        failureRedirect: '/auth/github',
    })
);

我的问题是 ...如何将前端路由(AngularJS)传递给successRedirect,而不是API(后端)路由。

我尝试了以下鳕鱼,但它不起作用......

背端:

var session;

app.get('/auth/github', function authenticategithub(req, res, next) {
        session = '/#' + req.query.returnTo;
        next();
    },
    passport.authenticate('github'));

app.get('/auth/github/callback', function(req, res, next) {
    passport.authenticate('github', {
        successRedirect: session,
        failureRedirect: '/auth/github'
    });

});

前端:

<--partials view Auth.html -->
href="http://localhost:3003/auth/github?returnTo={{location}}"

有谁知道我怎么解决这个问题? 感谢!!!

0 个答案:

没有答案