mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-11 22:08:54 +00:00
[feature/oauth] Define method to perform login actions for a provider
PHPB3-11673
This commit is contained in:
parent
8641127da5
commit
47b998ae48
3 changed files with 39 additions and 9 deletions
|
@ -128,15 +128,8 @@ class phpbb_auth_provider_oauth extends phpbb_auth_provider_base
|
|||
|
||||
if ($this->request->is_set('code', phpbb_request_interface::GET))
|
||||
{
|
||||
// This was a callback request from the service provider
|
||||
$service->requestAccessToken( $_GET['code'] );
|
||||
|
||||
// Send a request with it
|
||||
$path = $this->get_path($service_name);
|
||||
if ($path)
|
||||
{
|
||||
$result = json_decode( $service->request($path), true );
|
||||
}
|
||||
$this->services[$service_name]->set_external_service_provider($service);
|
||||
$result = $this->services[$service_name]->perform_auth_login();
|
||||
|
||||
// Perform authentication
|
||||
} else {
|
||||
|
|
|
@ -22,6 +22,21 @@ if (!defined('IN_PHPBB'))
|
|||
*/
|
||||
abstract class phpbb_auth_provider_oauth_service_base implements phpbb_auth_provider_oauth_service_interface
|
||||
{
|
||||
/**
|
||||
* External OAuth service provider
|
||||
*
|
||||
* @var \OAuth\Common\Service\ServiceInterface
|
||||
*/
|
||||
protected $service_provider;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_external_service_provider()
|
||||
{
|
||||
return $this->service_provider;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
@ -29,4 +44,12 @@ abstract class phpbb_auth_provider_oauth_service_base implements phpbb_auth_prov
|
|||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function set_external_service_provider(\OAuth\Common\Service\ServiceInterface $service_provider)
|
||||
{
|
||||
$this->service_provider = $service;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,13 @@ interface phpbb_auth_provider_oauth_service_interface
|
|||
*/
|
||||
public function get_auth_scope();
|
||||
|
||||
/**
|
||||
* Returns the external library service provider once it has been set
|
||||
*
|
||||
* @param \OAuth\Common\Service\ServiceInterface|null
|
||||
*/
|
||||
public function get_external_service_provider();
|
||||
|
||||
/**
|
||||
* Returns an array containing the service credentials belonging to requested
|
||||
* service.
|
||||
|
@ -41,4 +48,11 @@ interface phpbb_auth_provider_oauth_service_interface
|
|||
* )
|
||||
*/
|
||||
public function get_service_credentials();
|
||||
|
||||
/**
|
||||
* Sets the external library service provider
|
||||
*
|
||||
* @param \OAuth\Common\Service\ServiceInterface $service
|
||||
*/
|
||||
public function set_external_service_provider(\OAuth\Common\Service\ServiceInterface $service_provider);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue