【问题标题】:Accessing a token from a redirect in node从节点中的重定向访问令牌
【发布时间】:2016-09-06 16:38:33
【问题描述】:

我有一个验证用户的登录路径,然后生成一个令牌并重定向到主页。我设置了一些中间件,但是当我尝试访问中间件中的令牌时,我得到了未定义。令牌正在设置中,如果我不重定向,它就在标题中,但是当我重定向时,我似乎从标题中丢失了令牌。这是我第一次使用令牌,任何帮助表示赞赏。这是我正在使用的简化版本:

router.post('/login', function(req, res) {
    var token = admin.generateToken('authentication');
    if(token) {
        //doing this I get the token in the header in postman
        //res.header('Auth', token).send('token in header');

        //lose the token doing this
        res.header('Auth', token).redirect('/');
     } else {
         res.send('IS ADMIN NO TOKEN GENERATED');
     }
});

router.get('/', middleware.requireAuthentication, function(req, res, next) {
    //Can't reach here because of undefined token
});

middleware.js

module.exports = function(db) {

    return {
        requireAuthentication: function (req, res, next) {
            var token = req.get('Auth');

            console.log('TOKEN: ' + token ); //undefined
    }
}
};

【问题讨论】:

    标签: node.js redirect jwt


    【解决方案1】:

    不确定我是否在帮助,但我有类似的事情。事实证明,在创建路由时,我必须将其他中间件作为对象传递。

    比如:

    require('./routes/routes.js')(express, app, passport, mongoose, request, siteName);

    【讨论】:

    • 嗯,我不知道是否可以,不过我会尝试一下
    【解决方案2】:

    看来我需要会话来保持令牌值。发现这个回答已经here

    【讨论】:

    • 你是如何保持令牌值的?我面临同样的问题。我的 Web 客户端使用重定向将 OAuth2 令牌发送到 Web 服务器。我尝试了标头,但res.redirect() 命令重置了标头。我也尝试将令牌保存在req.session.accesstoken 中,但在服务器端,这个值没有被维护。
    猜你喜欢
    • 2014-12-14
    • 1970-01-01
    • 2017-01-28
    • 2020-03-24
    • 2013-05-28
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多