php-doc-en/reference/mongo/mongodb/authenticate.xml
2016-02-22 16:53:35 +00:00

177 lines
4.3 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>
<refsynopsisdiv role="soft-deprecation-notice">
<sidebar>
&mongo.noalternative.method.note;
<para>Instead, you need to provide credentials through the connection
string.</para>
</sidebar>
</refsynopsisdiv>
<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
-->