interface provider_interface

The interface authentication provider classes have to implement.

Methods

bool|string
init()

Checks whether the user is currently identified to the authentication provider.

array
login(string $username, string $password)

Performs login.

array|null
autologin()

Autologin function

array|null
acp()

This function is used to output any required fields in the authentication admin panel. It also defines any required configuration table fields.

array|null
get_acp_template(config $new_config)

This function updates the template with variables related to the acp options with whatever configuration values are passed to it as an array.

array|null
get_login_data()

Returns an array of data necessary to build custom elements on the login form.

logout(array $data, bool $new_session)

Performs additional actions during logout.

bool
validate_session(array $user)

The session validation function checks whether the user is still logged into phpBB.

string|null
login_link_has_necessary_data(array $login_link_data)

Checks to see if $login_link_data contains all information except for the user_id of an account needed to successfully link an external account to a forum account.

link_account(array $link_data)

Links an external account to a phpBB account.

array|null
get_auth_link_data(int $user_id = 0)

Returns an array of data necessary to build the ucp_auth_link page

unlink_account(array $link_data)

Unlinks an external account from a phpBB account.

Details

at line 31
bool|string init()

Checks whether the user is currently identified to the authentication provider.

Called in acp_board while setting authentication plugins. Changing to an authentication provider will not be permitted in acp_board if there is an error.

Return Value

bool|string

False if the user is identified, otherwise an error message, or null if not implemented.

at line 50
array login(string $username, string $password)

Performs login.

Parameters

string $username

The name of the user being authenticated.

string $password

The password of the user.

Return Value

array

An associative array of the format: array( 'status' => status constant 'error_msg' => string 'user_row' => array ) A fourth key of the array may be present: 'redirect_data' This key is only used when 'status' is equal to LOGIN_SUCCESS_LINK_PROFILE and its value is an associative array that is turned into GET variables on the redirect url.

at line 58
array|null autologin()

Autologin function

Return Value

array|null

containing the user row, empty if no auto login should take place, or null if not implemented.

at line 67
array|null acp()

This function is used to output any required fields in the authentication admin panel. It also defines any required configuration table fields.

Return Value

array|null

Returns null if not implemented or an array of the configuration fields of the provider.

at line 104
array|null get_acp_template(config $new_config)

This function updates the template with variables related to the acp options with whatever configuration values are passed to it as an array.

It then returns the name of the acp file related to this authentication provider.

Parameters

config $new_config

Contains the new configuration values that have been set in acp_board.

Return Value

array|null

Returns null if not implemented or an array with the template file name and an array of the vars that the template needs that must conform to the following example: array( 'TEMPLATE_FILE' => string, 'TEMPLATE_VARS' => array(...), ) An optional third element may be added to this array: 'BLOCK_VAR_NAME'. If this is present, then its value should be a string that is used to designate the name of the loop used in the ACP template file. When this is present, an additional key named 'BLOCK_VARS' is required. This must be an array containing at least one array of variables that will be assigned during the loop in the template. An example of this is presented below: array( 'BLOCK_VAR_NAME' => string, 'BLOCK_VARS' => array( 'KEY IS UNIMPORTANT' => array(...), ), 'TEMPLATE_FILE' => string, 'TEMPLATE_VARS' => array(...), )

at line 125
array|null get_login_data()

Returns an array of data necessary to build custom elements on the login form.

Return Value

array|null

If this function is not implemented on an auth provider then it returns null. If it is implemented it will return an array of up to four elements of which only 'TEMPLATE_FILE'. If 'BLOCK_VAR_NAME' is present then 'BLOCK_VARS' must also be present in the array. The fourth element 'VARS' is also optional. The array, with all four elements present looks like the following: array( 'TEMPLATE_FILE' => string, 'BLOCK_VAR_NAME' => string, 'BLOCK_VARS' => array(...), 'VARS' => array(...), )

at line 135
logout(array $data, bool $new_session)

Performs additional actions during logout.

Parameters

array $data

An array corresponding to \phpbb\session::data

bool $new_session

True for a new session, false for no new session.

at line 145
bool validate_session(array $user)

The session validation function checks whether the user is still logged into phpBB.

Parameters

array $user

Return Value

bool

true if the given user is authenticated, false if the session should be closed, or null if not implemented.

Checks to see if $login_link_data contains all information except for the user_id of an account needed to successfully link an external account to a forum account.

Parameters

array $login_link_data

Any data needed to link a phpBB account to an external account.

Return Value

string|null

Returns a string with a language constant if there is data missing or null if there is no error.

Links an external account to a phpBB account.

Parameters

array $link_data

Any data needed to link a phpBB account to an external account.

Returns an array of data necessary to build the ucp_auth_link page

Parameters

int $user_id

User ID for whom the data should be retrieved. defaults to 0, which is not a valid ID. The method should fall back to the current user's ID in this case.

Return Value

array|null

If this function is not implemented on an auth provider then it returns null. If it is implemented it will return an array of up to four elements of which only 'TEMPLATE_FILE'. If 'BLOCK_VAR_NAME' is present then 'BLOCK_VARS' must also be present in the array. The fourth element 'VARS' is also optional. The array, with all four elements present looks like the following: array( 'TEMPLATE_FILE' => string, 'BLOCK_VAR_NAME' => string, 'BLOCK_VARS' => array(...), 'VARS' => array(...), )

Unlinks an external account from a phpBB account.

Parameters

array $link_data

Any data needed to unlink a phpBB account from a phpbb account.