Enabled OAuth/OAuth2 logins
This commit is contained in:
85
modules/oauth/classes/Kohana/OAuth/API.php
Normal file
85
modules/oauth/classes/Kohana/OAuth/API.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php defined('SYSPATH') OR die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* OAuth API
|
||||
*
|
||||
* @package OAuth
|
||||
* @category Classes
|
||||
* @author Deon George
|
||||
* @copyright (c) 2009-2013 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
abstract class Kohana_OAuth_API {
|
||||
/**
|
||||
* @var string profile data
|
||||
*/
|
||||
protected $profile;
|
||||
|
||||
/**
|
||||
* Create a new API object.
|
||||
*
|
||||
* $API = OAuth_API::factory($name);
|
||||
*
|
||||
* @param string API type
|
||||
* @param array API options
|
||||
* @return OAuth_API
|
||||
*/
|
||||
public static function factory(OAuth_Provider $provider, $name, array $options = NULL)
|
||||
{
|
||||
$class = 'OAuth_API_'.ucfirst($name).'_'.ucfirst($provider->name);
|
||||
|
||||
return new $class($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* @var string required parameters
|
||||
*/
|
||||
protected $required = array(
|
||||
'profile',
|
||||
);
|
||||
|
||||
/**
|
||||
* Sets the API data.
|
||||
*
|
||||
* @param array API options
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(array $options = NULL)
|
||||
{
|
||||
foreach ($this->required as $key)
|
||||
{
|
||||
if ( ! isset($options[$key]))
|
||||
{
|
||||
throw new Kohana_OAuth_Exception('Required option not passed: :option',
|
||||
array(':option' => $key));
|
||||
}
|
||||
|
||||
$this->$key = $options[$key];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value of any protected class variable.
|
||||
*
|
||||
* // Get the API details
|
||||
* $secret = $api->id;
|
||||
*
|
||||
* @param string variable name
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($key)
|
||||
{
|
||||
return $this->$key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the API key.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return (string) $this->profile;
|
||||
}
|
||||
|
||||
} // End OAuth_API
|
Reference in New Issue
Block a user