Php/docs/mongodb.authenticate

来自菜鸟教程
跳转至:导航、​搜索

MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticate登录到数据库


This extension that defines this method

is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

需要把认证信息放在连接字符串里作为代替。

说明

public MongoDB::authenticate ( string $username , string $password ) : array

此方法能够认证它的连接。 如果数据库服务器开启了认证(默认没有开启),在做任何操作之前你需要登录。

通常情况下,你应该使用 MongoClient::__construct() 内置的参数而不是此方法。 如果你对一个连接验证了,然后在会话期间连接掉了然后重连,你会被重新验证。 如果你用这个方法手动验证,然后连接掉了,你必须在重新连接时手动调用这个方法。

该方法等同于运行:

<?php$salted = "${username}:mongo:${password}";$hash = md5($salted);$nonce = $db->command(array("getnonce" => 1));$saltedHash = md5($nonce["nonce"]."${username}${hash}");$result = $db->command(array("authenticate" => 1,    "user" => $username,    "nonce" => $nonce["nonce"],    "key" => $saltedHash));?>

当一个连接验证后,它仅能够通过 "logout" 数据库命令来登出:

<?php$db->command(array("logout" => 1));?>

参数

username
用户名。
password
密码(明文格式)。


返回值

返回数据库的响应,如果登录成功,它会返回

<?phparray("ok" => 1);?>

如果出现了什么错误,它会返回

<?phparray("ok" => 0, "errmsg" => "auth fails");?>

("auth fails" 可能是另外的信息,取决于数据库版本和发生了什么错误)。

参见

MongoDB 关于 » authenticate 的核心文档。


更新日志

版本 说明
1.2.11 使用时产生 E_DEPRECATED

请将验证细节传入到构造器。