(PECL mongo >=1.0.1)
MongoDB::authenticate — このデータベースにログインする
$username
, string $password
)このメソッドは、接続を認証済みの状態にします。 データベースサーバーで認証を有効にしていると (デフォルトでは有効になっていません)、 ログインするまでは何もすることができません。
一般に認証は、このメソッドを使うよりも 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 コアドキュメントの » authenticate を参照ください。
バージョン | 説明 |
---|---|
1.2.11 |
E_DEPRECATED を発行するようになりました。
認証情報の詳細をコンストラクタに渡しましょう。
|