MongoDB::authenticate
(PECL mongo >=1.0.1)
MongoDB::authenticate — このデータベースにログインする
このメソッドを定義している拡張モジュールは非推奨です。
かわりに MongoDB 拡張モジュールを使うべきです。 このメソッドの代替は、新しい拡張モジュールには存在しません。
認証用の情報は、接続文字列を使って渡す必要があります。
説明
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
- パスワード (プレーンテキスト)。
返り値
データベースからの応答を返します。ログインに成功すると、次のようになります。
<?phparray("ok" => 1);?>
何かが失敗した場合は、次のようになります。
<?phparray("ok" => 0, "errmsg" => "auth fails");?>
("auth fails" は別のメッセージかもしれません。 データベースのバージョンや問題の原因によって変わります)。
変更履歴
バージョン | 説明 |
---|---|
PECL mongo 1.2.11 | E_DEPRECATED を発行するようになりました。
認証情報の詳細をコンストラクタに渡しましょう。 |