2. The definitions of the parameters that onAuthenticate expects are different.

2. The definitions of the parameters that onAuthenticate expects are different.

Line 31:

Line 31:

The onAuthenticate() method is the method that will be called when the system is trying to use your plugin to authenticate the user. This method will be passed three parameters: the username, the password, and a reference to an object of type JAuthenticationResponse

The onAuthenticate() method is the method that will be called when the system is trying to use your plugin to authenticate the user. This method will be passed three parameters: the username, the password, and a reference to an object of type JAuthenticationResponse

−

+

<pre>

/**

/**

* This method should handle any authentication and report back to the subject

* This method should handle any authentication and report back to the subject

Line 46:

Line 46:

function onAuthenticate( $username, $password, &$response )

function onAuthenticate( $username, $password, &$response )

−

+

</pre>

example.php:

example.php:

−

+

<pre>

/**

/**

* This method should handle any authentication and report back to the subject

* This method should handle any authentication and report back to the subject

Line 61:

Line 61:

function onAuthenticate( $credentials, $options, &$response )

function onAuthenticate( $credentials, $options, &$response )

+

</pre>

+

== Invalid link ==

The link to http://api.joomla.org/Joomla-Framework/User/JAuthenticationResponse.html is not displayed correctly.

The link to http://api.joomla.org/Joomla-Framework/User/JAuthenticationResponse.html is not displayed correctly.

The link to http://api.joomla.org/Joomla-Framework/User/JAuthenticationResponse.html is not displayed correctly.

+

== Possible error in code ==

+

+

This section looks like it contains an error.

+

+

if (!$result) {

+

$response->status = JAUTHENTICATE_STATUS_FAILURE;

+

$response->error_message = 'User does not exist';

+

}

+

// to authenticate, the username must exist in the database, and the password should be equal

+

// to the reverse of the username (so user joeblow would have password wolbeoj)

+

if($result && ($username == strrev( $password )))

+

{

+

$email = JUser::getInstance($result); // Bring this in line with the rest of the system

+

$response->email = $email->email;

+

$response->status = JAUTHENTICATE_STATUS_SUCCESS;

+

}

+

else

+

{

+

$response->status = JAUTHENTICATE_STATUS_FAILURE;

+

$response->error_message = 'Invalid username and password';

+

}

+

+

If I am not completely mistaken the last else will override the User does not exist error as there is no return in that if block?

Latest revision as of 03:38, 5 June 2013

A google search on 'joomla onauthenticate example' returns this tutorial so I suspect many people tasked with configuring a Joomla! 1.5 system to authenticate a user login against a database external to Joomla's will no doubt arrive here and use the code presented as a starting point to implementing their own auth plugin. At least that is what happend to me!

In this tutorial it says that the example is based on example.php, which can be found in the plugins/authentication directory of your Joomla installation.

After scratching my head and wondering if I could be any dumber than I already am, I noted the following differences between the code in the tutorial and the code in the plugins/authentication/example.php file in my Joomla 1.5.13 installation.

In fact, the code is so different that it may explain why I have had so much trouble implementing the simple process of authenticating against a table in another MySQL database on the same machine.

Would someone be so kind as to confirm that these differences are problematic or deconfuse me on this issue? Please bear in mind that I'm a perl guy drowning in php.

2. The definitions of the parameters that onAuthenticate expects are different.

Tutorial:

The onAuthenticate() method is the method that will be called when the system is trying to use your plugin to authenticate the user. This method will be passed three parameters: the username, the password, and a reference to an object of type JAuthenticationResponse

Invalid link

Possible error in code

This section looks like it contains an error.

if (!$result) {
$response->status = JAUTHENTICATE_STATUS_FAILURE;
$response->error_message = 'User does not exist';
}
// to authenticate, the username must exist in the database, and the password should be equal
// to the reverse of the username (so user joeblow would have password wolbeoj)
if($result && ($username == strrev( $password )))
{
$email = JUser::getInstance($result); // Bring this in line with the rest of the system
$response->email = $email->email;
$response->status = JAUTHENTICATE_STATUS_SUCCESS;
}
else
{
$response->status = JAUTHENTICATE_STATUS_FAILURE;
$response->error_message = 'Invalid username and password';
}

If I am not completely mistaken the last else will override the User does not exist error as there is no return in that if block?