我希望在OAuth请求twitter之后,将用户导航到同一页面。我了解这只能通过设置会话变量来完成,但是应该如何精确地做到这一点呢?

当前,路由配置如下:

// Authentication routes
(function () {
    app.get('/auth/twitter', passport.authenticate('twitter'));

    app.get('/auth/twitter/done',
        passport.authenticate('twitter', {
            failureRedirect : '/auth/error'
        }),
        function (req, res) {
            res.send('Logged In.');
        });

    app.get('/auth/error', function (req, res) {
        res.send('An error has occured.');
    });
}());


我可以在路由"/auth/twitter/done"中读取会话变量,然后重定向到它包含的页面。但是正确的设置方法是什么?

    app.get('/auth/twitter', passport.authenticate('twitter'),
        function (res, req) { res.session.authReturnPage = '...'; });


不起作用。

最佳答案

尝试在调用req.session.authReturnPage之前设置passport.authenticate('twitter')

app.get('/auth/twitter', function(req, res) {
    req.session.authReturnPage = req.headers.referer;
    passport.authenticate('twitter');
}

关于javascript - Passport.js,express.js-在oauth之后返回同一页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20360482/

10-12 12:56
查看更多