我有一个登录路由,用于验证用户然后生成令牌并重定向到主页。我有一些中间件设置,但当我尝试访问中间件中的令牌时,我得到了未定义。正在设置令牌并且如果我不重定向则位于标题中但是当我进行重定向时,我似乎从标题中松开了令牌。这是我第一次使用令牌获得任何帮助。这是我正在使用的缩减版本:
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
});
middlware.js
module.exports = function(db) {
return {
requireAuthentication: function (req, res, next) {
var token = req.get('Auth');
console.log('TOKEN: ' + token ); //undefined
}
}
};
答案 0 :(得分:1)
不确定我是否在帮助,但我有类似的东西。事实证明,在创建路线时,我必须将其他中间件作为对象传递。
类似于:
require('。/ routes / routes.js')(express,app,passport,mongoose,request,siteName);
答案 1 :(得分:1)
似乎我需要会话来持久化令牌值。已找到此答案here