mongodb如何获取当前登录用户

时间:2016-07-30 00:30:07

标签: javascript angularjs mongodb

我可以成功获得所有用户,但我需要的是获取登录用户的详细信息。 .find()发现数据库中的每个人都有特定的函数来获取当前用户吗?我认为User.getUser() mongodb func会识别当前登录的用户,但显然不是。

我正在为此登录用户创建用户个人资料页面。

登录

module.exports.login = function (req, res){
 User.find(req.body, function (err, results){
    if (err) throw err;

    var jsonToken = {
        username: req.body.username,
        expiry: new Date().toISOString()
    }
    var encryptedData = btoa(JSON.stringify(jsonToken));
    console.log(encryptedData);

    if (results && results.length === 1){
        res.json(encryptedData);
    }

   })
}

获取用户

module.exports.getuser = function (req, res) {
console.log('get current user detail');
User.find(req.body, function(err, result) {
    if(err) throw err;

    if(result) {
        console.log(result);
        res.json(result);
    }
})
}

Angular Ctrl

 var getUser = function() {
        signupService.getUserDetail()
            .then(function(response) {
                console.log(response.data);
            });
    }

1 个答案:

答案 0 :(得分:0)

db.runCommand函数和connectionStatus命令可能正是您要查找的内容。

  • connectionStatus - 返回有关当前连接的信息,特别是经过身份验证的用户的状态及其可用权限。

MongoDB Shell示例

> db.runCommand({connectionStatus: 1})
{
    "authInfo" : {
        "authenticatedUsers" : [
            {
                "user" : "myUser",
                "db" : "myDB"
            }
        ],
        "authenticatedUserRoles" : [
            {
                "role" : "dbAdmin",
                "db" : "myDB"
            },
            {
                "role" : "readWrite",
                "db" : "myDB"
            }
        ]
    },
    "ok" : 1
}