如何在标头中发送令牌并在同一时间重定向:nodejs

时间:2018-05-08 13:44:55

标签: node.js redirect routes

我有以下登录路径,我想将令牌发送到客户端,然后重定向到另一个路线即可。这目前不起作用。

我该怎么做?

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')
        })
    })

1 个答案:

答案 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路由器周围进行挖掘。