MongoDB::authenticate
(PECL mongo >=1.0.1)
MongoDB::authenticate — Выполняет вход в базу данных
Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.
Вместо этого вам необходимо предоставить учетные данные через строку подключения.
Описание
$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
-
Пароль (в текстовом виде).
Возвращаемые значения
Возвращает ответ базы данных. Если вход был успешным, вернет
<?php
array("ok" => 1);
?>
<?php
array("ok" => 0, "errmsg" => "auth fails");
?>
Смотрите также
Основная документация MongoDB по » аутентификации.
Список изменений
Версия | Описание |
---|---|
PECL mongo 1.2.11 |
Выдает E_DEPRECATED при использовании. Пожалуйста, передавайте
детали аутентификации в конструкторе.
|