MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticateIdentification à une base de données

Description

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

Cette méthode permet de s'identifier sur une connexion. Si l'identification est activée sur le serveur de base de données (ce n'est pas le cas par défaut), vous devez vous y identifier avant de faire une quelconque opération.

En général, vous devriez utiliser l'authentification intégrée à MongoClient::__construct() au lieu de cette méthode. Si vous vous authentifiez sur une connexion et que celle-ci se perd et se reconnecte pendant votre session, vous serez réauthentifié. Si vous vous étiez authentifié manuellement au moyen de cette méthode et que la connexion se perd, vous devrez alors rappeler cette méthode une fois reconnecté.

Cette méthode revient à exécuter :

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

?>

Une fois la connexion authentifiée, elle ne peut être non-authentifiée qu'en utilisant la commande de la base de données "logout" :

<?php

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

?>

Liste de paramètres

username

Le nom d'utilisateur.

password

Le mot de passe (en texte plein).

Valeurs de retour

Retourne la réponse de la base de données. Si l'identification a réussi, la méthode retournera

<?php
array("ok" => 1);
?>
Si une erreur survient, elle retournera
<?php
array("ok" => 0, "errmsg" => "auth fails");
?>
("auth fails" peut être un message différent, suivant la version de la base de données et le type d'erreur rencontré).

Voir aussi

Documentation principale MongoDB sur l' » authentification.

Historique

Version Description
1.2.11 Lance une alerte de niveau E_DEPRECATED lorsqu'utilisé. Veuillez passer les détails d'authentification au constructeur.

LoadingChargement en cours