Как отправить токен в заголовке и перенаправить одновременно: nodejs - PullRequest
0 голосов
/ 08 мая 2018

У меня есть следующий логин-маршрут , куда я хочу отправить токен клиенту и затем перенаправление на другой маршрут . Это в настоящее время не работает.

Как я могу это сделать?

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 голосов
/ 08 мая 2018

Я предлагаю вам использовать промежуточное программное обеспечение 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
    }));

EDIT

Это мой старый ответ

Используйте его в качестве промежуточного программного обеспечения:

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*/
})

Чтобы сделать это обязательным, не вызывая промежуточное программное обеспечение на каждом маршруте вашего экспресс-приложения, копайтесь вокруг экспресс-маршрутизатора.

...