首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检索验证用户的命令

检索验证用户的命令
EN

Stack Overflow用户
提问于 2021-06-09 16:50:03
回答 1查看 34关注 0票数 0
  1. 获取方法
  2. 使用经过身份验证的用户的accessToken
  3. 只有非管理帐户才能继续。
  4. 用户应该能够只检索他的订单。

路由器

代码语言:javascript
运行
复制
router.get("/my-orders", auth.verify, (req, res) => {

    const user = auth.decode(req.headers.authorization);

    if (!user.isAdmin) {

        UserController.getMyOrders(req.body).then(getMine => res.send(getMine));


    } else {

        return res.status(403).send("Access denied.");
    }

});```

控制器

代码语言:javascript
运行
复制
module.exports.getMyOrders = (body) => {

    return User.find({}, {
        "isAdmin": 0,
        "_id": 0,
        "password": 0
    });
}

我什么都得到了。有人能帮我写代码吗?如何过滤令牌所属的用户,检索他的订单,却无法获得其他用户的订单?

EN

回答 1

Stack Overflow用户

发布于 2021-06-09 17:11:52

通过在.find方法中传递一个空对象,可以告诉mongodb查找所有内容。我假设在body中您有一些数据来查找特定的用户,如果是这样的话,您将使用它。例如:如果body包含一个用户名,你可以写.

代码语言:javascript
运行
复制
module.exports.getMyOrders = (body) => {
    return User.find({username: body.username});
}

下面是关于db.collection.find()的更多信息

编辑-通过JWT查找用户:

代码语言:javascript
运行
复制
router.get("/my-orders", auth.verify, (req, res) => {
    //Here you have decoded your JWT and saved it as user
    const user = auth.decode(req.headers.authorization);

    if (!user.isAdmin) {
        //here you are passing user instead of req.body
        UserController.getMyOrders(user).then(getMine => res.send(getMine));


    } else {

        return res.status(403).send("Access denied.");
    }

});
代码语言:javascript
运行
复制
module.exports.getMyOrders = (user) => {
    //now you are using 'username' from the decoded jwt to look up the user
    return User.find({username: user.username});
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67908506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档