class oauth extends base

OAuth authentication provider for phpBB3

Properties

protected config $config
protected driver_interface $db
protected db $db_auth
protected dispatcher $dispatcher
protected language $language
protected request_interface $request
protected service_collection $service_providers
protected user $user
protected string $oauth_token_table
protected string $oauth_state_table
protected string $oauth_account_table
protected string $users_table
protected string $root_path
protected string $php_ext

Methods

bool|string
init()

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

array|null
autologin()

Autologin function

from  base
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.

array|null
get_auth_link_data(int $user_id = 0)

Returns an array of data necessary to build the ucp_auth_link page

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.

from  base
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.

unlink_account(array $link_data)

Unlinks an external account from a phpBB account.

__construct(config $config, driver_interface $db, db $db_auth, dispatcher $dispatcher, language $language, request_interface $request, service_collection $service_providers, user $user, string $oauth_token_table, string $oauth_state_table, string $oauth_account_table, string $users_table, string $root_path, string $php_ext)

Constructor.

array
login(string $username, string $password)

Performs login.

string|false
link_account_login_link(array $link_data, string $service_name)

Performs the account linking for login_link.

string|false
link_account_auth_link(array $link_data, string $service_name)

Performs the account linking for auth_link.

link_account_perform_link(array $data)

Performs the query that inserts an account link

ServiceInterface
get_service(string $provider, token_storage $storage, string $query)

Returns a new service object.

string
get_service_name(string $provider)

Returns the service name for an OAuth provider name.

string
get_provider(string $service_name)

Returns the OAuth provider name from a service name.

string
get_provider_title(string $provider)

Returns the localized title for the OAuth provider.

bool
is_set_code(AbstractService|AbstractService $service)

Returns whether or not the authorization code is set.

array|false
set_redirect(AbstractService|AbstractService $service)

Sets a redirect to the authorization uri.

Details

at line 135
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.

in base at line 32
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 367
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 387
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 336
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(...), )

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(...), )

at line 474
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.

in base at line 80
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.

Unlinks an external account from a phpBB account.

Parameters

array $link_data

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

at line 98
__construct(config $config, driver_interface $db, db $db_auth, dispatcher $dispatcher, language $language, request_interface $request, service_collection $service_providers, user $user, string $oauth_token_table, string $oauth_state_table, string $oauth_account_table, string $users_table, string $root_path, string $php_ext)

Constructor.

Parameters

config $config

Config object

driver_interface $db

Database object

db $db_auth

DB auth provider

dispatcher $dispatcher

Event dispatcher object

language $language

Language object

request_interface $request

Request object

service_collection $service_providers

OAuth providers service collection

user $user

User object

string $oauth_token_table

OAuth table: token storage

string $oauth_state_table

OAuth table: state

string $oauth_account_table

OAuth table: account association

string $users_table

User table

string $root_path

phpBB root path

string $php_ext

php File extension

at line 154
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.

Performs the account linking for login_link.

Parameters

array $link_data

The same variable given to {\phpbb\auth\provider\provider_interface::link_account}

string $service_name

The name of the service being used in linking.

Return Value

string|false

Returns a language key (string) if an error is encountered, or false on success.

Performs the account linking for auth_link.

Parameters

array $link_data

The same variable given to {\phpbb\auth\provider\provider_interface::link_account}

string $service_name

The name of the service being used in linking.

Return Value

string|false

Returns a language constant (string) if an error is encountered, or false on success.

Performs the query that inserts an account link

Parameters

array $data

This array is passed to db->sql_build_array

at line 716
protected ServiceInterface get_service(string $provider, token_storage $storage, string $query)

Returns a new service object.

Parameters

string $provider

The name of the provider

token_storage $storage

Token storage object

string $query

The query string used for the redirect uri

Return Value

ServiceInterface

Exceptions

exception

When OAuth service was not created

at line 773
protected string get_service_name(string $provider)

Returns the service name for an OAuth provider name.

Parameters

string $provider

The OAuth provider name

Return Value

string

The service name

at line 789
protected string get_provider(string $service_name)

Returns the OAuth provider name from a service name.

Parameters

string $service_name

The service name

Return Value

string

The OAuth provider name

at line 800
protected string get_provider_title(string $provider)

Returns the localized title for the OAuth provider.

Parameters

string $provider

The OAuth provider name

Return Value

string

The OAuth provider title

at line 812
protected bool is_set_code(AbstractService|AbstractService $service)

Returns whether or not the authorization code is set.

Parameters

AbstractService|AbstractService $service

The external OAuth service

Return Value

bool

Whether or not the authorization code is set in the URL for the respective OAuth service's version

at line 834
protected array|false set_redirect(AbstractService|AbstractService $service)

Sets a redirect to the authorization uri.

Parameters

AbstractService|AbstractService $service

The external OAuth service

Return Value

array|false

Array if an error occurred, false on success