<?xml version="1.0"?>
<record><wiki id="wiki?page_id=102">
	<page_name>before_authenticate</page_name>
	<page_id>102</page_id>
	<page_title>before_authenticate hook</page_title>
	<content>Return to [[Application Delegate Class]]

The &apos;&apos;&apos;before_authenticate&apos;&apos;&apos; hook is a method that can be defined in the [[Application Delegate Class]] which is called before the authentication step occurs on &apos;&apos;&apos;every&apos;&apos;&apos; request (not just on login).  It is meant to be used to perform custom code that may affect the authentication settings.

===Since===

This hook has been available since Xataface Version 1.2.5.

===Example===

&lt;code&gt;
/**
 * Implemented trigger to be called before authentication to set the authentication
 * type to basic.
 */
function before_authenticate(){
    $auth = Dataface_AuthenticationTool::getInstance();
    if ( @$_SESSION[&apos;-login-type&apos;] == &apos;basic&apos; ) $auth-&gt;setAuthType(&apos;basic&apos;);
}
&lt;/code&gt;

In the above example we used a separate action to store the user&apos;s preferred login type in a session variable.  This preference is then applied in the before_authenticate method to override the authentication type.

===Chain Authentication Support===

The most common use of this hook is likely to implement some sort of chain authentication, where authentication methods are attempted until one succeeds. 

===See Also===

* [[Application Delegate Class]]
* [[authentication]] - Overview of Xataface authentication
* [[Writing Custom Authentication Plugins]]
* [[Authenticating Against the PHPBB Users Table]]
* [[LDAP or Active Directory]] - Using LDAP or Active Directory for authentication.
* [http://xataface.com/documentation/tutorial/getting_started/permissions Permissions Section of the Getting Started tutorial]
* [[_auth]] - Directives available in the [[_auth]] section of the [[conf.ini file]].</content>
	<keywords>authentication</keywords>
	<language>en</language>
	<original_page></original_page>
</wiki></record>