MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticateこのデータベースにログインする

説明

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

パスワード (プレーンテキスト)。

返り値

データベースからの応答を返します。ログインに成功すると、次のようになります。

<?php
array("ok" => 1);
?>
何かが失敗した場合は、次のようになります。
<?php
array("ok" => 0"errmsg" => "auth fails");
?>
("auth fails" は別のメッセージかもしれません。 データベースのバージョンや問題の原因によって変わります)。

参考

MongoDB コアドキュメントの » authenticate を参照ください。

変更履歴

バージョン 説明
1.2.11 E_DEPRECATED を発行するようになりました。 認証情報の詳細をコンストラクタに渡しましょう。