php-doc-en/reference/mongo/mongodb/authenticate.xml
Jeremy Mikola 8a4640c71c Revise replica set language and MongoClient references
Replace master/slave terminology with primary/secondary
Change most Mongo class references to MongoClient
Enforce 80-char line widths and trim trailing whitespace
Add literal formatting within some paragraphs

https://jira.mongodb.org/browse/PHP-583


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@328496 c90b9560-bf6c-de11-be94-00142212c4b1
2012-11-26 03:07:28 +00:00

168 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="mongodb.authenticate" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>MongoDB::authenticate</refname>
<refpurpose>Log in to this database</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>array</type><methodname>MongoDB::authenticate</methodname>
<methodparam><type>string</type><parameter>username</parameter></methodparam>
<methodparam><type>string</type><parameter>password</parameter></methodparam>
</methodsynopsis>
<para>
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.
</para>
<para>
In general, you should use the authenticate built into
<function>MongoClient::__construct</function> 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.
</para>
<para>
This method is identical to running:
<programlisting role="php">
<![CDATA[
<?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
));
?>
]]>
</programlisting>
</para>
<para>
Once a connection has been authenticated, it can only be un-authenticated by
using the "logout" database command:
<programlisting role="php">
<![CDATA[
<?php
$db->command(array("logout" => 1));
?>
]]>
</programlisting>
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>username</parameter>
</term>
<listitem>
<para>
The username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>password</parameter>
</term>
<listitem>
<para>
The password (in plaintext).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns database response. If the login was successful, it will return
<programlisting role="php">
<![CDATA[
<?php
array("ok" => 1);
?>
]]>
</programlisting>
If something went wrong, it will return
<programlisting role="php">
<![CDATA[
<?php
array("ok" => 0, "errmsg" => "auth fails");
?>
]]>
</programlisting>
("auth fails" could be another message, depending on database version and what
when wrong).
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
MongoDB core docs on <link xlink:href="&url.mongodb.dochub.authenticate;">authenticate</link>.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>1.2.11</entry>
<entry>
Emits <constant>E_DEPRECATED</constant> when used. Please pass in the
authentication details to the constructor.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->