我正在使用zend 3框架和mongodb。使用mongodb/mongodb库连接到mongodb数据库。
如何在zend和mongodb中添加验证,以便只有经过身份验证的用户才能使用zend rest apis在mongodb中执行CRUD操作?
从mongo shell我已经使用以下查询向db添加了身份验证,工作正常。
use admin;
db.createUser(
{
user: "admin",
pwd: "password",
roles: [ { role: "root", db: "admin" } ]
}
);
mongo --port 27017 -u "admin" -p "password" --authenticationDatabase "admin"
use test;
db.createUser(
{
user: "testUser",
pwd: "password",
roles: [ "readWrite", "dbAdmin" ]
}
);
db.auth("testUser", "password");
现在在Zend模型中,我正在使用以下代码,无需数据库身份验证即可正常工作。
$mongoClient = new \MongoDB\Client();
$collection = $mongoClient->selectDatabase($dbName)->selectCollection($collectionName);
$cursor = $collection->findOne(['_id' => $_id]);
现在,在执行上述查询之前,如何将用户凭据传递给\MongoDB\Client()
以验证用户身份?
答案 0 :(得分:1)
您可以使用凭据初始化客户端,如下所示:
$mongoClient = new \MongoDB\Client('mongodb://username:password@host1:port');