Archived
1
0
Fork 0

rename app/library/OAuth.php to app/library/OAuth/Client.php and change implementation to use Adapter classes.

This commit is contained in:
Henrik Hautakoski 2018-04-06 11:39:13 +02:00
parent 21c869a06a
commit b3eb25d221
2 changed files with 59 additions and 103 deletions

View file

@ -0,0 +1,59 @@
<?php
namespace Httpcb\OAuth;
use Httpcb\OAuth\Adapter\AdapterInterface;
class Client
{
/**
* Adapter to use.
*
* @var AdapterInterface
*/
protected $_adapter;
/**
* Access Token
*
* @var string
*/
protected $_token;
public function __construct(AdapterInterface $adapter)
{
$this->_adapter = $adapter;
}
public function getAuthorizationUrl()
{
return $this->_adapter->getAuthorizationUrl();
}
/**
* @param string $code
* @return UserDataInterface
*/
public function authenticate($code)
{
$this->_adapter->fetchAccessToken($code);
return $this->getUserData();
}
/**
* @return UserDataInterface
*/
public function getUserData()
{
$data = $this->_adapter->getResourceData();
return $this->_createUserData($data);
}
protected function _createUserData(array $data)
{
$name = $this->_adapter->getProviderName();
$class = "Httpcb\\OAuth\\UserData\\{$name}";
return new $class($data);
}
}