passport.js,express.js - 在oauth之后回到同一页面

时间:2013-12-03 19:59:34

标签: javascript twitter express oauth passport.js

我希望在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 = '...'; });

不起作用。

1 个答案:

答案 0 :(得分:0)

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

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