我有以下登录路径,我想将令牌发送到客户端,然后重定向到另一个路线即可。这目前不起作用。
我该怎么做?
app.post('/login-user', (req, res) => {
user.loginUser(req.body, (err, jResult) => {
if (err) {
res.send(jResult)
}
let token = jwt.sign({
user: jResult,
}, "supersecret")
console.log(token)
res.send(token).redirect('/LimeLINE/chatroom')
})
})
答案 0 :(得分:0)
我建议你使用passport.js中间件,它提供了一种在用户登录或失败时重定向用户的方法。
app.post('/login-user', passport.authenticate('your_strategy_name', {
successRedirect : '/limeLINE/chatroom', // redirect to the secure profile section
failureRedirect : '/login-user', // redirect back to the signup page if there is an error
failureFlash : true // allow flash messages
}));
这是我的老答案
将其用作中间件:
var logUser = function(){
return function(req,res,next){
user.loginUser(req.body, (err, jResult) => {
if (err) {
res.send(jResult)
}
let token = jwt.sign({
user: jResult,
}, "supersecret")
console.log(token)
/* Store your token */
next();
})
}
}
app.post('/LimeLINE/chatroom', logUser(), (req, res) => {
/* code for your chat*/
})
为了强制执行此功能而不在每个路由中进行中间件调用,请在Express路由器周围进行挖掘。