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

Posted

技术标签:

【中文标题】如何使用节点将用户数据对象与令牌一起发送到角度前端?【英文标题】:How to send user data object along with token to the angular front-end using node? 【发布时间】:2019-08-28 13:20:17 【问题描述】:

在注册和登录时,我想将用户数据与 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);
        
    );
);

如何发送已注册用户对象和令牌。

【问题讨论】:

Instate of send use res.json() 它将以 JSON 格式返回数据。 【参考方案1】:

两种方式:

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

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

Express 配置选项:headers.https://expressjs.com/en/resources/middleware/cors.html#configuration-options

【讨论】:

以上是关于如何使用节点将用户数据对象与令牌一起发送到角度前端?的主要内容,如果未能解决你的问题,请参考以下文章

使用节点将对象数组保存到 mongo 数据库,表达

如何使用节点将二进制对象存储在redis中?

在 Photon Bolt 中,如何将 int 数据列表与事件一起发送到令牌中?

使用节点将字符串解析为 JSON 会产生意外的令牌,验证器说没问题

使用 jwt 令牌时如何发送用户信息?

如何使用节点将表单数据(文本/纯文本)转换为 json?