Php/docs/mongodb.authenticate

From Get docs

MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticateLog in to this database


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.

Instead, you need to provide credentials through the connection string.

Description

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

This method causes its connection to be authenticated. If authentication is enabled for the database server (it's not, by default), you need to log in before the database will allow you to do anything.

In general, you should use the authenticate built into MongoClient::__construct() in preference to this method. If you authenticate on connection and the connection drops and reconnects during your session, you'll be reauthenticated. If you manually authenticated using this method and the connection drops, you'll have to call this method again once you're reconnected.

This method is identical to running:

<?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));?>

Once a connection has been authenticated, it can only be un-authenticated by using the "logout" database command:

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

Parameters

username
The username.
password
The password (in plaintext).


Return Values

Returns database response. If the login was successful, it will return

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

If something went wrong, it will return

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

("auth fails" could be another message, depending on database version and what when wrong).

See Also

MongoDB core docs on » authenticate.


Changelog

Version Description
PECL mongo 1.2.11 Emits E_DEPRECATED when used. Please pass in the

authentication details to the constructor.