Node.js 身份验证和令牌节点
我有个问题 我想做一个简单的登录页面, 但是我在通过http头传递令牌时遇到了问题Node.js 身份验证和令牌节点,node.js,authentication,Node.js,Authentication,我有个问题 我想做一个简单的登录页面, 但是我在通过http头传递令牌时遇到了问题 app.post('/login',(req,res) => { var body = req.body.user; User.findByCredentials(body.email,body.password).then((user) => { return user.generateAuthToken().then((token) => { res.head
app.post('/login',(req,res) => {
var body = req.body.user;
User.findByCredentials(body.email,body.password).then((user) => {
return user.generateAuthToken().then((token) => {
res.header('x-auth', token).send(user);
});
}).catch((e) => {
res.status(400).send();
});
});
这是登录页面的路径,我将令牌保存在标题中的“x-auth”中,这是有效的
但是
var authenticate = (req, res, next) => {
var token = req.header('x-auth');
User.findByToken(token).then((user) => {
if (!user) {
return Promise.reject();
}
req.user = user;
req.token = token;
next();
}).catch((e) => {
res.status(401).send();
});
};
module.exports={authenticate}
此函数是女贞路的中间件,当我请求“x-auth”时,我得到了“Undefined”
这是连接两个代码的部分
app.get('/',authenticate,(req,res) => {
res.sendFile(publicPath + '/index.html');
});
有人能帮我吗?这两段代码之间有什么关系?什么时候调用
authenticate
?app.get('/',authenticate,(req,res)=>{res.sendFile(publicPath+'/index.html');});在这种情况下,我们错过了我在标题中的'x-auth'中保存了令牌。你是怎么做到的?要在标头中设置令牌,简单节点方法res.setHeader('auth-token',token)
我修复了登录路由中的代码,我使用了res.header('x-auth',token)