如何使用节点将用户数据对象和令牌一起发送到有角度的前端?

时间:2019-04-07 04:43:04

标签: node.js angular angular6 jwt mean

在注册和登录时,我想将用户的数据与JWT一起发送,以便我可以更新当前用户的个人资料。

router.post('/signup', (req, res) => {
    let userData = req.body;
    let user = new User(userData);

    user.save((err, registeredUser) => {
        if(err) {
            console.log(err);
        }else{
            let payload =  { subject : registeredUser._id }
            let token = jwt.sign(payload, 'abcd');
            res.status(200).send({token});
        }
    });
});

如何将registeredUser对象与令牌一起发送。

1 个答案:

答案 0 :(得分:1)

两种方法:

  1. 简单粗暴:res.status(200).send({token, user})
  2. 从后端公开自定义标头,并将令牌发送为响应的一部分。然后,您可以使用响应主体简单地发送用户/资源数据。 res.status(200).send({user})

通常#2是一个更好的设计,因为令牌更像是auth / session信息,并且可以使用后端的自定义中间件/过滤器(例如:PassportJS)进行拦截,并且始终作为令牌附加到请求标头中前端使用Angular拦截器。

快速配置选项:标头。https://expressjs.com/en/resources/middleware/cors.html#configuration-options