diff --git a/classes.svg b/classes.svg new file mode 100644 index 0000000..c2a6062 --- /dev/null +++ b/classes.svg @@ -0,0 +1,128 @@ + + + + + + +G + +cluster_Global + + + + + + + + +\ + +cluster_\Opauth + + + + + + + + +Opauth + +cluster_\Opauth\Transport + + + + + + + + +Transport + + +\\Opauth\\Transport\\Base + +«abstract» +Base + + +\\Opauth\\TransportInterface + +TransportInterface + + +\\Opauth\\Transport\\Base->\\Opauth\\TransportInterface + + + + +\\Opauth\\Transport\\File + +File + + +\\Opauth\\Transport\\File->\\Opauth\\Transport\\Base + + + + +\\Opauth\\Transport\\Curl + +Curl + + +\\Opauth\\Transport\\Curl->\\Opauth\\Transport\\Base + + + + +\\Opauth\\Opauth + +Opauth + + +\\Opauth\\Request + +Request + + +\\Opauth\\AutoLoader + +AutoLoader + + +\\Opauth\\Response + +Response + + +\\ArrayAccess + +\ArrayAccess + + +\\Opauth\\Response->\\ArrayAccess + + + + +\\Opauth\\AbstractStrategy + +«abstract» +AbstractStrategy + + +\\Opauth\\StrategyInterface + +StrategyInterface + + +\\Opauth\\AbstractStrategy->\\Opauth\\StrategyInterface + + + + + diff --git a/classes/Opauth.AbstractStrategy.html b/classes/Opauth.AbstractStrategy.html new file mode 100644 index 0000000..9f615e3 --- /dev/null +++ b/classes/Opauth.AbstractStrategy.html @@ -0,0 +1,780 @@ + + + + + + » \Opauth\AbstractStrategy + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+

AbstractStrategy

+ + Implements \Opauth\StrategyInterface + +

Opauth Strategy +Individual strategies are to be extended from this class

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Constructor

+
__construct(array $config = array()) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$config

+ array

Strategy-specific configuration

+

+
+ +
+
+
+ +
+

Getter/setter for the complete callbackurl

+
callbackUrl($url = null) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$url

+

+

+
+ +
+
+
+ +
+

Set transport class

+
setTransport(\Opautth\Transport\TransportInterface $transport) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$transport

+ \Opautth\Transport\TransportInterface

+

+
+ +
+
+
+ +
+

Getter/setter method for session data

+
sessionData(array $data = null) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$data

+ array

Array to write or null to read

+

+
+ +
+
+
+ +
+

Adds strategy config values to params array if set.

+
addParams(array $configKeys, array $params = array()) 
+
+
+
+
+

$configKeys array may contain string values, or key => value pairs +key for the strategy key, value for the params key to set

+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$configKeys

+ array

+

+
+
+

$params

+ array

+

+
+ +
+
+
+ +
+

Response callback

+
response(mixed $raw, array $error = array()) 
+
+
+
+
+

More info: https://github.com/uzyn/opauth/wiki/Auth-response#wiki-error-response

+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$raw

+ mixed

Raw response from Oauth provider

+

+
+
+

$error

+ array

Data on error to be sent back along with the callback +$error = array( + 'code' // Error code, can be int (HTTP status) or string (eg. access_denied) + 'message' // User-friendly error message +)

+

+
+ +
+
+
+ +
+

Loads strategy values from default configs

+
setValues($values = array()) 
+
+
+
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ +

Arguments

+
+

$values

+

+

+
+ +
+
+
+ +
+

Getter/setter for strategy keys

+
value(string $key, string $default = null) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$key

+ string

Configuration key to be loaded

+

+
+
+

$default

+ string

Default value for the configuration key if none is set by the user

+

+
+ +
+
+
+ +
+

Check expected strategy keys

+
checkExpected() 
+
+
+
+
+
+
+ + + + + + + + + + +
+ throws + + + +
+ + +
+ + +
+
+
+ +
+

Checks if strategy value is set

+
hasKey(string $key, string $not = null) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$key

+ string

Expected configuration key

+

+
+
+

$not

+ string

Value should not match this

+

+
+ +
+
+
+ +
+

Recursively converts object into array +Basically get_object_vars, but recursive.

+
recursiveGetObjectVars(mixed $obj) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$obj

+ mixed

Object

+

+
+ +
+
+
+ +
+

Replace defined env values enclused in {} with values from $dictionary

+
envReplace(string $value, array $dictionary) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$value

+ string

Input string

+

+
+
+

$dictionary

+ array

Dictionary to lookup values from

+

+
+ +
+
+
+ + +

Properties

+ +
+

Compulsory config keys, listed as unassociative arrays +eg. array('app_id', 'app_secret');

+
expects
+
+
+
+
+
+
+
+
+
+ +
+

Optional config keys with respective default values, listed as associative arrays +eg. array('scope' => 'email');

+
defaults
+
+
+
+
+
+
+
+
+
+ +
+

Configurations and settings unique to a particular strategy

+
strategy
+
+
+
+
+
+
+
+
+
+ +
+

Key for $_SESSION data

+
sessionKey
+
+
+
+
+
+
+
+
+
+ +
+

Map response from raw data

+
responseMap
+
+
+
+
+
+
+
+
+
+ +
+

callbackUrl

+
callbackUrl
+
+
+
+
+
+
+
+
+
+ +
+

Http client transport class

+
http
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.AutoLoader.html b/classes/Opauth.AutoLoader.html new file mode 100644 index 0000000..b954c02 --- /dev/null +++ b/classes/Opauth.AutoLoader.html @@ -0,0 +1,400 @@ + + + + + + » \Opauth\AutoLoader + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+

AutoLoader

+ + +

AutoLoader

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Constructor

+
__construct($namespace = null, string $baseDirectory = null) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$namespace

+

+

+
+
+

$baseDirectory

+ string

+

+
+ +
+
+
+ +
+

Register autoloader

+
register($namespace = null, $dir = null) 
+
+ static
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$namespace

+

+

+
+
+

$dir

+

+

+
+ +
+
+
+ +
+

Unregister autoloader

+
unregister($namespace = null, $dir = null) 
+
+ static
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$namespace

+

+

+
+
+

$dir

+

+

+
+ +
+
+
+ +
+

loadClass

+
loadClass(string $className) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$className

+ string

The name of the class to load.

+

+
+ +
+
+
+ + +

Properties

+ +
+

directory

+
directory
+
+
+
+
+
+
+
+
+
+ +
+

namespace

+
namespace
+
+
+
+
+
+
+
+
+
+ +
+

namespaceLength

+
namespaceLength
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.Opauth.html b/classes/Opauth.Opauth.html new file mode 100644 index 0000000..d987154 --- /dev/null +++ b/classes/Opauth.Opauth.html @@ -0,0 +1,618 @@ + + + + + + » \Opauth\Opauth + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+

Opauth

+ + +

Opauth +Multi-provider authentication framework for PHP

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Constructor +Loads user configuration and strategies.

+
__construct(array $config = array()) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$config

+ array

User configuration

+

+
+ +
+
+
+ +
+

Get key from config array, null if not present

+
config(\Opauth\type $key) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$key

+ \Opauth\type

Configuration key

+

+
+ +
+
+
+ +
+

Run Opauth: +Parses request URI and perform defined authentication actions based based on it.

+
run() 
+
+
+
+
+

When running request() it will do a redirect, callback returns Opauth Response object

+
+ + + + + + + + + + +
+ throws + + + +
+ + +
+ + +
+
+
+ +
+

Run request method on current strategy

+
request() 
+
+
+
+
+
+
+ + + + + + + + + + + + + + +
+ throws + + + +
+ + +
+ + +
+ + +
+
+
+ +
+

callback

+
callback() 
+
+
+
+
+
+
+ + + + + + + + + + +
+ throws + + + +
+ + +
+ + +
+
+
+ +
+

Builds strategies

+
buildStrategies(array $strategies) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ throws + + + +
+ + +
+ +

Arguments

+
+

$strategies

+ array

Array of strategies and their settings

+

+
+ +
+
+
+ +
+

Builds single strategy array

+
buildStrategy(string|integer $name, array|string $settings) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$name

+ string|integer

+

+
+
+

$settings

+ array|string

+

+
+ +
+
+
+ +
+

Loads strategy based on url if not manually set

+
loadStrategy() 
+
+
+
+
+
+
+ + + + + + + + + + +
+ throws + + + +
+ + +
+ + +
+
+
+ +
+

Sets Strategy instance

+
setStrategy(\Opauth\AbstractStrategy $strategy) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$strategy

+ \Opauth\AbstractStrategy

+

+
+ +
+
+
+ + +

Properties

+ +
+

Strategy instance

+
strategy
+
+
+
+
+
+
+
+
+
+ +
+

Holds array of strategy settings indexed by url_name

+
strategies
+
+
+
+
+
+
+
+
+
+ +
+

The request object

+
request
+
+
+
+
+
+
+
+
+
+ +
+

The response object

+
response
+
+
+
+
+
+
+
+
+
+ +
+

Configuration array

+
config
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.Request.html b/classes/Opauth.Request.html new file mode 100644 index 0000000..f9aadb8 --- /dev/null +++ b/classes/Opauth.Request.html @@ -0,0 +1,369 @@ + + + + + + » \Opauth\Request + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+

Request

+ + +

Opauth Request +Parses current request parameters

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Set path if '/auth/' isnt the default path, or if application is in a subdir

+
__construct(string $path = '/') 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$path

+ string

+

+
+ +
+
+
+ +
+

Get strategy url_name and action form the request

+
parseUri() 
+
+
+
+
+
+
+ + + + + + + + + + + + + + +
+ throws + + + +
+ + +
+ + +
+ + +
+
+
+ +
+

getHost

+
getHost() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ +
+

providerUrl

+
providerUrl() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ + +

Properties

+ +
+

Strategy urlname, used to switch to correct strategy

+
urlname
+
+
+
+
+
+
+
+
+
+ +
+

Action, null for request, 'callback' for callback

+
action
+
+
+
+
+
+
+
+
+
+ +
+

Opauth url path, relative to host

+
path
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.Response.html b/classes/Opauth.Response.html new file mode 100644 index 0000000..c91d646 --- /dev/null +++ b/classes/Opauth.Response.html @@ -0,0 +1,993 @@ + + + + + + » \Opauth\Response + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+

Response

+ + Implements \ArrayAccess + +

Opauth Response +Individual strategies should return this in their callback() method

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

__construct

+
__construct(string $provider, array $raw) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$provider

+ string

Use $this->strategy['provider'] so aliassed strategies are handled correct

+

+
+
+

$raw

+ array

Raw response data from provider

+

+
+ +
+
+
+ +
+

Check if the response has an error

+
isError() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ +
+

Get the error message

+
errorMessage() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ +
+

Gets error code

+
errorCode() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ +
+

Sets an error

+
setError(array $error) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$error

+ array

Array with code and message keys

+

+
+ +
+
+
+ +
+

Checks if required parameters are set

+
isValid() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ +
+

Copies raw data to other attribute.

+
setData(string $path, string $rawPath) 
+
+
+
+
+

Uses paths to data, Use dot(.) to separate levels +Examples: +- Path to $response->info['a']['b']['c'] would be 'info.a.b.c' +- setData('info.nickname', 'screen_name') sets value from $response->raw['screen_name'] to $response->info['nickname'] +- setData('uid', 'nested.user_id') sets value from $response->raw['nested']['userid'] to $response->uid

+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$path

+ string

Path to property. eg 'info.nickname' sets to $info['nickname']

+

+
+
+

$rawPath

+ string

Path to a $raw data. eg 'screen_name' reads from $raw['screen_name']

+

+
+ +
+
+
+ +
+

Set data map, array of 'path' => 'rawPath' key/value pairs +See also setData()

+
setMap(array $map = array()) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$map

+ array

+

+
+ +
+
+
+ +
+

getMap

+
getMap() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ +
+

Sets attribute data based on data mapping +Use setMap() to set the data mapping

+
map() 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ + +
+
+
+ +
+

Gets the raw data value through path

+
getRaw(\Opauth\type $path) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$path

+ \Opauth\type

see setData()

+

+
+ +
+
+
+ +
+

Merges a value into a property

+
mergeValue(\Opauth\type $path, \Opauth\type $value) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$path

+ \Opauth\type

path to Property see setData()

+

+
+
+

$value

+ \Opauth\type

value to set

+

+
+ +
+
+
+ +
+

Array access read implementation, magic getter for raw data

+
offsetGet(string $name) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$name

+ string

Name of the key being accessed.

+

+
+ +
+
+
+ +
+

Array access write implementation

+
offsetSet(string $name, mixed $value) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$name

+ string

Name of the key being written

+

+
+
+

$value

+ mixed

The value being written.

+

+
+ +
+
+
+ +
+

Array access isset() implementation

+
offsetExists(string $name) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$name

+ string

thing to check.

+

+
+ +
+
+
+ +
+

Array access unset() implementation

+
offsetUnset(string $name) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$name

+ string

Name to unset.

+

+
+ +
+
+
+ +
+

Magic getter for raw data, like arrayaccess

+
__get(\Opauth\type $name) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$name

+ \Opauth\type

+

+
+ +
+
+
+ +
+

__isset

+
__isset(\Opauth\type $name) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$name

+ \Opauth\type

+

+
+ +
+
+
+ + +

Properties

+ +
+

provider

+
provider
+
+
+
+
+
+
+
+
+
+ +
+

raw

+
raw
+
+
+
+
+
+
+
+
+
+ +
+

uid

+
uid
+
+
+
+
+
+
+
+
+
+ +
+

name

+
name
+
+
+
+
+
+
+
+
+
+ +
+

credentials

+
credentials
+
+
+
+
+
+
+
+
+
+ +
+

Info

+
info
+
+
+
+
+
+
+
+
+
+ +
+

Key => value pairs to map raw data

+
map
+
+
+
+
+

Key contains dot formatted path to Response attributes, +values contain path to raw data to read from.

+ +

Strategies can define a response map, or users can add 'responseMap' to +the config array, to override and define the way they like the response +data to be formatted

+ +

Example: +protected $responseMap = array( + 'uid' => 'id', + 'name' => 'name', + 'info.name' => 'name', + 'info.nickname' => 'screen_name', + 'info.location' => 'location', + 'info.description' => 'description', + 'info.image' => 'profile_image_url', + 'info.urls.website' => 'url' +);

+
+
+
+
+ +
+

Contains array with error code and message

+
error
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.StrategyInterface.html b/classes/Opauth.StrategyInterface.html new file mode 100644 index 0000000..9ff844e --- /dev/null +++ b/classes/Opauth.StrategyInterface.html @@ -0,0 +1,240 @@ + + + + + + » \Opauth\StrategyInterface + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+

StrategyInterface

+ + Extends + +

Opauth StrategyInterface +Individual strategies should implement this interface

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Handles the initial Oauth request

+
request() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ +
+

Handles the callback from Oauth

+
callback() 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ + +
+
+
+ + +
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.Transport.Base.html b/classes/Opauth.Transport.Base.html new file mode 100644 index 0000000..a7ace75 --- /dev/null +++ b/classes/Opauth.Transport.Base.html @@ -0,0 +1,379 @@ + + + + + + » \Opauth\Transport\Base + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+

Base

+ + Implements \Opauth\TransportInterface + +

Opauth Base client +Base class for built in Curl and File transport classes

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Client redirect: This function builds the full HTTP URL with parameters and redirects via Location header.

+
redirect(string $url, array $data = array(), boolean $exit = true) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data

+

+
+
+

$exit

+ boolean

Whether to call exit() right after redirection

+

+
+ +
+
+
+ +
+

Basic HTTP GET request via request(), wrapper of file_get_contents/curl

+
get(string $url, array $data = array()) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data to be submitted via GET

+

+
+ +
+
+
+ +
+

Basic HTTP POST request via request(), wrapper of file_get_contents/curl

+
post(string $url, array $data) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data to be POSTed

+

+
+ +
+
+
+ +
+

Helper method to build the query string

+
buildQuery(array $data) 
+
+
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$data

+ array

+

+
+ +
+
+
+ + +

Properties

+ +
+

Response headers

+
responseHeaders
+
+
+
+
+
+
+
+
+
+ +
+

User agent

+
userAgent
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.Transport.Curl.html b/classes/Opauth.Transport.Curl.html new file mode 100644 index 0000000..664f89b --- /dev/null +++ b/classes/Opauth.Transport.Curl.html @@ -0,0 +1,429 @@ + + + + + + » \Opauth\Transport\Curl + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+

Curl

+ + Extends \Opauth\Transport\Base + +

Opauth Curl +Curl transport class

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Makes a request using curl

+
request(string $url, array $options = array()) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ throws + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

+

+
+
+

$options

+ array

+

+
+ +
+
+
+ +
+

Client redirect: This function builds the full HTTP URL with parameters and redirects via Location header.

+
redirect(string $url, array $data = array(), boolean $exit = true) 
+
+ inherited
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data

+

+
+
+

$exit

+ boolean

Whether to call exit() right after redirection

+

+
+ +
+
+
+ +
+

Basic HTTP GET request via request(), wrapper of file_get_contents/curl

+
get(string $url, array $data = array()) 
+
+ inherited
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data to be submitted via GET

+

+
+ +
+
+
+ +
+

Basic HTTP POST request via request(), wrapper of file_get_contents/curl

+
post(string $url, array $data) 
+
+ inherited
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data to be POSTed

+

+
+ +
+
+
+ +
+

Helper method to build the query string

+
buildQuery(array $data) 
+
+ inherited
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$data

+ array

+

+
+ +
+
+
+ + +

Properties

+ +
+

Response headers

+
responseHeaders
+
+ inherited
+
+
+
+
+
+
+
+ +
+

User agent

+
userAgent
+
+ inherited
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.Transport.File.html b/classes/Opauth.Transport.File.html new file mode 100644 index 0000000..cd99e04 --- /dev/null +++ b/classes/Opauth.Transport.File.html @@ -0,0 +1,429 @@ + + + + + + » \Opauth\Transport\File + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+
+

File

+ + Extends \Opauth\Transport\Base + +

Opauth Curl +File transport class, uses file_get_contents for environments where curl is not available

+
+
+ + +
+ + + + + +
+ package + +

Opauth

+ +
+ +

Methods

+ +
+

Makes a request using file_get_contents

+
request(string $url, array $options = array()) 
+
+
+
+
+
+
+ + + + + + + + + + +
+ throws + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

+

+
+
+

$options

+ array

+

+
+ +
+
+
+ +
+

Client redirect: This function builds the full HTTP URL with parameters and redirects via Location header.

+
redirect(string $url, array $data = array(), boolean $exit = true) 
+
+ inherited
+
+
+
+
+ + + + + + + + + + +
+ + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data

+

+
+
+

$exit

+ boolean

Whether to call exit() right after redirection

+

+
+ +
+
+
+ +
+

Basic HTTP GET request via request(), wrapper of file_get_contents/curl

+
get(string $url, array $data = array()) 
+
+ inherited
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data to be submitted via GET

+

+
+ +
+
+
+ +
+

Basic HTTP POST request via request(), wrapper of file_get_contents/curl

+
post(string $url, array $data) 
+
+ inherited
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$url

+ string

Destination URL

+

+
+
+

$data

+ array

Data to be POSTed

+

+
+ +
+
+
+ +
+

Helper method to build the query string

+
buildQuery(array $data) 
+
+ inherited
+
+
+
+
+ + + + + + +
+ + +
+ +

Arguments

+
+

$data

+ array

+

+
+ +
+
+
+ + +

Properties

+ +
+

Response headers

+
responseHeaders
+
+ inherited
+
+
+
+
+
+
+
+ +
+

User agent

+
userAgent
+
+ inherited
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.TransportInterface.html b/classes/Opauth.TransportInterface.html new file mode 100644 index 0000000..5b460b1 --- /dev/null +++ b/classes/Opauth.TransportInterface.html @@ -0,0 +1,341 @@ + + + + + + » \Opauth\TransportInterface + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + + + + +
+ + +
+ + + + +
+ +
+
+

TransportInterface

+ + Extends + +

+
+
+ + +
+ +
+ +

Methods

+ +
+

redirect

+
redirect($url, $data = array(), $exit = true) 
+
+
+
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ +

Arguments

+
+

$url

+

+

+
+
+

$data

+

+

+
+
+

$exit

+

+

+
+ +
+
+
+ +
+

get

+
get($url, $data = array()) 
+
+
+
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ +

Arguments

+
+

$url

+

+

+
+
+

$data

+

+

+
+ +
+
+
+ +
+

post

+
post($url, $data) 
+
+
+
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ +

Arguments

+
+

$url

+

+

+
+
+

$data

+

+

+
+ +
+
+
+ + +
+
+ + +
+
+ +
+ + + + diff --git a/classes/Opauth.html b/classes/Opauth.html deleted file mode 100644 index a9cc636..0000000 --- a/classes/Opauth.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - -Opauth » \Opauth - - - - - - - - - - -
- -
- -
- -
-

Opauth -Multi-provider authentication framework for PHP

-
-

- - - -
packageOpauth
-

- Methods

-
-

Constructor -Loads user configuration and strategies.

-
__construct(array $config, boolean $run) 
-
-
-

-

Parameters

-
-

$config

-array

User configuration

-
-

$run

-boolean

Whether Opauth should auto run after initialization.

-
-
-
-

Callback: prints out $auth values, and acts as a guide on Opauth security -Application should redirect callback URL to application-side.

-
callback() 
-
-

Refer to example/callback.php on how to handle auth callback.

-
-
-

Prints out variable with <pre> tags -Silence if Opauth is not in debug mode

-
debug(mixed $var) 
-
-
-

-

Parameters

-
-

$var

-mixed

Object or variable to be printed

-
-
-
-

Run Opauth: -Parses request URI and perform defined authentication actions based based on it.

-
run() 
-
-

-
-
-

Validate $auth response -Accepts either function call or HTTP-based call

-
validate(string $input, string $timestamp, string $signature, string $reason) : boolean
-
-
-

-

Parameters

-
-

$input

-string

= sha1(print_r($auth, true))

-
-
-

$timestamp

-string

= $_REQUEST['timestamp'])

-
-
-

$signature

-string

= $_REQUEST['signature']

-
-
-

$reason

-string

Sets reason for failure if validation fails

-

Returns

-
-booleantrue: valid; false: not valid.
-
-
-
-

Load strategies from user-input $config

-
loadStrategies() 
-
-

-
-
-

Parses Request URI

-
parseUri() 
-
-

-
-
-

Loads a strategy, firstly check if the - strategy's class already exists, especially for users of Composer; -If it isn't, attempts to load it from $this->env['strategy_dir']

-
requireStrategy(string $strategy) : string
-
-
-

-

Parameters

-
-

$strategy

-string

Name of a strategy

-

Returns

-
-stringClass name of the strategy, usually StrategyStrategy
-
-
-

- Properties

- 
-

User configuraable settings -Refer to example/opauth.conf.php.default or example/opauth.conf.php.advanced for sample -More info: https://github.com/uzyn/opauth/wiki/Opauth-configuration

-
$config 
-
-

-
- 
-

Environment variables

-
$env 
-
-

-
- 
-

Strategy map: for mapping URL-friendly name to Class name

-
$strategyMap 
-
-

-
-
-
-
-
-
-
- - diff --git a/classes/OpauthStrategy.html b/classes/OpauthStrategy.html deleted file mode 100644 index 38722ec..0000000 --- a/classes/OpauthStrategy.html +++ /dev/null @@ -1,524 +0,0 @@ - - - - - -Opauth » \OpauthStrategy - - - - - - - - - - -
- -
-
-
- -
- -
-
- -
-

Opauth Strategy -Individual strategies are to be extended from this class

-
-

- - - -
packageOpauth.Strategy
-

- Methods

-
-

Constructor

-
__construct(array $strategy, array $env) 
-
-
-

-

Parameters

-
-

$strategy

-array

Strategy-specific configuration

-
-
-

$env

-array

Safe env values from Opauth, with critical parameters stripped out

-
-
-
-

Call an action from a defined strategy

-
callAction(string $action, string $defaultAction) 
-
-
-

-

Parameters

-
-

$action

-string

Action name to call

-
-

$defaultAction

-string

If an action is not defined in a strategy, calls $defaultAction

-
-
-
-
-

Packs $auth nicely and send to callback_url, ships $auth either via GET, POST or session.

-
callback() 
-
-

Set shipping transport via callback_transport config, default being session.

-
-
-

Client-side GET: This function builds the full HTTP URL with parameters and redirects via Location header.

-
clientGet(string $url, array $data, boolean $exit) 
-
-
-

-

Parameters

-
-

$url

-string

Destination URL

-
-

$data

-array

Data

-
-

$exit

-boolean

Whether to call exit() right after redirection

-
-
-
-
-

Generates a simple HTML form with $data initialized and post results via JavaScript

-
clientPost(string $url, array $data) 
-
-
-

-

Parameters

-
-

$url

-string

URL to be POSTed

-
-

$data

-array

Data to be POSTed

-
-
-
-

Replace defined env values enclused in {} with values from $dictionary

-
envReplace(string $value, array $dictionary) : string
-
-
-

-

Parameters

-
-

$value

-string

Input string

-
-

$dictionary

-array

Dictionary to lookup values from

-

Returns

-
-stringString substitued with value from dictionary, if applicable
-
-
-
-

Error callback

-
errorCallback(array $error) 
-
-
-

More info: https://github.com/uzyn/opauth/wiki/Auth-response#wiki-error-response

-

Parameters

-
-

$error

-array

Data on error to be sent back along with the callback $error = array( 'provider' // Provider name 'code' // Error code, can be int (HTTP status) or string (eg. access_denied) 'message' // User-friendly error message 'raw' // Actual detail on the error, as returned by the provider )

-
-
-
-
-

Recursively converts multidimensional array into POST-friendly single dimensional array

-
flattenArray(array $array, string $prefix, array $results) : array
-
-
-

-

Parameters

-
-

$array

-array

Array to be flatten

-
-

$prefix

-string

String to be prefixed to flatenned variable name

-
-

$results

-array

Existing array of flattened inputs to be merged upon

-

Returns

-
-arrayA single dimensional array with POST-friendly name
-
-
-
-

Static hashing funciton

-
hash(string $input, string $timestamp, int $iteration, string $salt) : string
-
-
-

-

Parameters

-
-

$input

-string

Input string

-
-

$timestamp

-string

ISO 8601 formatted date

-
-

$iteration

-int

Number of hash interations

-
-

$salt

-string -
-

Returns

-
-stringResulting hash
-
-
-
-

Simple server-side HTTP request with file_get_contents -Provides basic HTTP calls.

-
httpRequest(string $url, array $options, string $responseHeaders) : string
-
-
-

See serverGet() and serverPost() for wrapper functions of httpRequest() - -Notes: -Reluctant to use any more advanced transport like cURL for the time being to not - having to set cURL as being a requirement. -Strategy is to provide own HTTP transport handler if requiring more advanced support.

-

Parameters

-
-

$url

-string

Full URL to load

-
-

$options

-array

Stream context options (http://php.net/stream-context-create)

-
-
-

$responseHeaders

-string

Response headers after HTTP call. Useful for error debugging.

-

Returns

-
-stringContent resulted from request, without headers
-
-
-
-

Recursively converts object into array -Basically get_object_vars, but recursive.

-
recursiveGetObjectVars(mixed $obj) : array
-
-
-

-

Parameters

-
-

$obj

-mixed

Object

-

Returns

-
-arrayArray of object properties
-
-
-
-

Redirect to $url with HTTP header (Location: )

-
redirect(string $url, boolean $exit) 
-
-
-

-

Parameters

-
-

$url

-string

URL to redirect user to

-
-

$exit

-boolean

Whether to call exit() right after redirection

-
-
-
-
-

Auth request -aka Log in or Register

-
request() 
-
-

-
-
-

Basic server-side HTTP GET request via self::httpRequest(), wrapper of file_get_contents

-
serverGet(string $url, array $data, array $options, string $responseHeaders) : string
-
-
-

-

Parameters

-
-

$url

-string

Destination URL

-
-

$data

-array

Data to be submitted via GET

-
-

$options

-array

Additional stream context options, if any

-
-

$responseHeaders

-string

Response headers after HTTP call. Useful for error debugging.

-

Returns

-
-stringContent resulted from request, without headers
-
-
-
-

Basic server-side HTTP POST request via self::httpRequest(), wrapper of file_get_contents

-
serverPost(string $url, array $data, array $options, string $responseHeaders) : string
-
-
-

-

Parameters

-
-

$url

-string

Destination URL

-
-

$data

-array

Data to be POSTed

-
-

$options

-array

Additional stream context options, if any

-
-

$responseHeaders

-string

Response headers after HTTP call. Useful for error debugging.

-

Returns

-
-stringContent resulted from request, without headers
-
-
-
-

Ensures that a compulsory value is set, throws an error if it's not set

-
expects(string $key, string $not) : mixed
-
-
-

-

Parameters

-
-

$key

-string

Expected configuration key

-
-

$not

-string

If value is set as $not, trigger E_USER_ERROR

-
-

Returns

-
-mixedThe loaded value
-
-
-
-

Maps user profile to auth response

-
mapProfile(array $profile, string $profile_path, string $auth_path) 
-
-
-

-

Parameters

-
-

$profile

-array

User profile obtained from provider

-
-

$profile_path

-string

Path to a $profile property. Use dot(.) to separate levels. eg. Path to $profile['a']['b']['c'] would be 'a.b.c'

-
-
-

$auth_path

-string

Path to $this->auth that is to be set.

-
-
-
-
-

Loads a default value into $strategy if the associated key is not found

-
optional(string $key, string $default) : mixed
-
-
-

-

Parameters

-
-

$key

-string

Configuration key to be loaded

-
-

$default

-string

Default value for the configuration key if none is set by the user

-

Returns

-
-mixedThe loaded value
-
-
-
-

Security: Sign $auth before redirecting to callback_url

-
sign(string $timestamp) : string
-
-
-

-

Parameters

-
-

$timestamp

-string

ISO 8601 formatted date

-

Returns

-
-stringResulting signature
-
-
-
-

Send $data to callback_url using specified transport method

-
shipToCallback(array $data, string $transport) 
-
-
-

-

Parameters

-
-

$data

-array

Data to be sent

-
-

$transport

-string

Callback method, either 'get', 'post' or 'session' 'session': Default. Works best unless callback_url is on a different domain than Opauth 'post': Works cross-domain, but relies on availability of client-side JavaScript. 'get': Works cross-domain, but may be limited or corrupted by browser URL length limit (eg. IE8/IE9 has 2083-char limit)

-
-
-
-

- Properties

- 
-

Auth response array, containing results after successful authentication

-
$auth 
-
-

-
- 
-

Optional config keys with respective default values, listed as associative arrays -eg. array('scope' => 'email');

-
$defaults 
-
-

-
- 
-

Compulsory config keys, listed as unassociative arrays -eg. array('app_id', 'app_secret');

-
$expects 
-
-

-
- 
-

Name of strategy

-
$name 
-
-

-
- 
-

Safe env values from Opauth, with critical parameters stripped out

-
$env 
-
-

-
- 
-

Configurations and settings unique to a particular strategy

-
$strategy 
-
-

-
-
-
-
-
-
-
- - diff --git a/css/bootstrap.css b/css/bootstrap.css index a90e319..563050c 100644 --- a/css/bootstrap.css +++ b/css/bootstrap.css @@ -2105,6 +2105,11 @@ button.btn.small, input[type="submit"].btn.small { color: #999999; text-transform: uppercase; } + +.nav-list .nav-header * { + text-transform:none; +} + .nav-list > li + .nav-header { margin-top: 9px; } diff --git a/css/bootstrap.min.css b/css/bootstrap.min.css index b01f92e..d522124 100644 --- a/css/bootstrap.min.css +++ b/css/bootstrap.min.css @@ -412,6 +412,7 @@ button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom .nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;} .nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} .nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-transform:uppercase;} +.nav-list .nav-header *{text-transform:none;} .nav-list>li+.nav-header{margin-top:9px;} .nav-list .active>a,.nav-list .active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} .nav-list [class^="icon-"]{margin-right:2px;} diff --git a/css/template.css b/css/template.css index 74889d8..be24f08 100644 --- a/css/template.css +++ b/css/template.css @@ -83,6 +83,10 @@ a.brand, h2, .hero-unit h1 background: white; } +.dropdown-menu a{ + overflow: hidden; + text-overflow: ellipsis; +} h2 { border-bottom: 1px dashed #55A72F; @@ -385,6 +389,7 @@ div.element div.subelement { margin-left: 10px; padding-bottom: 5px; + clear: both; } pre code @@ -404,7 +409,7 @@ div.element div.subelement > code div.element div.subelement > p { margin-left: 20px; - margin-right: 40px; + margin-right: 50px; } div.element div.subelement h4 @@ -416,6 +421,7 @@ div.element div.subelement h4 div.element div.subelement.response { padding-bottom: 15px; + margin-right: 50px; } div.labels @@ -447,6 +453,11 @@ div.labels font-weight: bold; } +.iviewer_common +{ + z-index: 100; +} + @media (min-width: 980px) { a[name] diff --git a/deprecated.html b/deprecated.html index b0dda2e..b87ba08 100644 --- a/deprecated.html +++ b/deprecated.html @@ -1,71 +1,115 @@ - + + - - - -Opauth - - - - - - - + + + » Deprecated elements + + + + + + + + + + + + + + + + + + + +
- -
-
-
- -
No deprecated elements have been - found in this project. -
-
-
-
-
+ + +
+ +
+ +
+ +
+ + +
+
No deprecated elements have been found in this project.
+
+
+
+ + diff --git a/errors.html b/errors.html index 8466f91..55f2051 100644 --- a/errors.html +++ b/errors.html @@ -1,76 +1,266 @@ - + + - - - -Opauth - - - - - - - + + + » Compilation errors + + + + + + + + + + + + + + + + + + + +
- -
-
-
- -
No errors have been found in this project.
-
-
-
-
-
+ + +
+
+ + +
+ +
+ + + +
+ +

+ + TransportInterface.php + 1 +

+
+ + + + + + + + + + + + + + + +
TypeLineDescription
error12No summary for interface \Opauth\TransportInterface
+
+
+
+ +

+ + Opauth.php + 1 +

+
+ + + + + + + + + + + + + + + +
TypeLineDescription
error134No summary for method callback()
+
+
+
+
+
+
+
+ +

+ + AutoLoader.php + 1 +

+
+ + + + + + + + + + + + + + + +
TypeLineDescription
error19No summary for property $directory
+
+
+
+
+
+
+
+
+
+ +

+ + Response.php + 1 +

+
+ + + + + + + + + + + + + + + +
TypeLineDescription
error22No summary for property $provider
+
+
+
+ +

+ + AbstractStrategy.php + 1 +

+
+ + + + + + + + + + + + + + + +
TypeLineDescription
error55No summary for property $callbackUrl
+
+
+
+
+ + diff --git a/graph_class.html b/graph_class.html index 4b86981..45c3391 100644 --- a/graph_class.html +++ b/graph_class.html @@ -1,68 +1,116 @@ - + + - - - -Opauth - - - - - - - + + + API Documentation + + + + + + + + + + + + + + + + + + +
- -
- +
+ }); +
+ + diff --git a/index.html b/index.html index 443e1dd..1bf0d91 100644 --- a/index.html +++ b/index.html @@ -1,82 +1,149 @@ - + + - - - -Opauth - - - - - - - + + + API Documentation + + + + + + + + + + + + + + + + + + +
- -
-

Opauth

-

Documentation

-
-
-
- -
-
+ + +
+

API Documentation

+

Documentation

+
+ +
+
+
+ +
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+
+ + diff --git a/js/template.js b/js/template.js index 7d9f235..686757b 100644 --- a/js/template.js +++ b/js/template.js @@ -10,7 +10,7 @@ function initializeContents() $(".element a.more").hide(); $(".clickable.class,.clickable.interface").click(function() { - document.location = $(this).attr('href'); + document.location = $("a.more", this).attr('href'); }); // change the cursor to a pointer to make it more explicit that this it clickable @@ -140,7 +140,10 @@ $(document).ready(function() { var thisPath = filterPath(this.pathname) || locationPath; if (locationPath == thisPath && (location.hostname == this.hostname || !this.hostname) && this.hash.replace(/#/, '')) { - var $target = $(this.hash), target = this.hash; + var target = decodeURIComponent(this.hash.replace(/#/,'')); + // note: I'm using attribute selector, because id selector can't match elements with '$' + var $target = $('[id="'+target+'"]'); + if ($target.length > 0) { $(this).click(function (event) diff --git a/markers.html b/markers.html index 9616dac..651de7a 100644 --- a/markers.html +++ b/markers.html @@ -1,73 +1,116 @@ - + + - - - -Opauth - - - - - - - + + + » Markers + + + + + + + + + + + + + + + + + + + +
- -
-
-
- -
No markers have been found in this project.
-
- The following markers were found: -
    -
    -
    -
    -
    -
    + + +
    +
    + +
    + +
    + + + +
    No markers have been found in this project.
    + +
    +
    +
    +
    + + diff --git a/namespaces/Opauth.Transport.html b/namespaces/Opauth.Transport.html new file mode 100644 index 0000000..7341b76 --- /dev/null +++ b/namespaces/Opauth.Transport.html @@ -0,0 +1,169 @@ + + + + + + » \Opauth\Transport + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    +
    + +
    + +
    + +
    + + + + + + +
    +

    Classes, interfaces and traits

    + + +
    +

    Base

    +

    Opauth Base client +Base class for built in Curl and File transport classes

    +
    + « More » +
    + +
    +

    File

    +

    Opauth Curl +File transport class, uses file_get_contents for environments where curl is not available

    +
    + « More » +
    + +
    +

    Curl

    +

    Opauth Curl +Curl transport class

    +
    + « More » +
    + +
    + + +
    +
    +
    + + + + diff --git a/namespaces/Opauth.html b/namespaces/Opauth.html new file mode 100644 index 0000000..f1dfee7 --- /dev/null +++ b/namespaces/Opauth.html @@ -0,0 +1,253 @@ + + + + + + » \Opauth + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    +
    + +
    + +
    + +
    + + + + + + +
    +

    Classes, interfaces and traits

    + +
    +

    TransportInterface

    +

    +
    + « More » +
    + +
    +

    StrategyInterface

    +

    Opauth StrategyInterface +Individual strategies should implement this interface

    +
    + « More » +
    + + +
    +

    Opauth

    +

    Opauth +Multi-provider authentication framework for PHP

    +
    + « More » +
    + +
    +

    Request

    +

    Opauth Request +Parses current request parameters

    +
    + « More » +
    + +
    +

    AutoLoader

    +

    AutoLoader

    +
    + « More » +
    + +
    +

    Response

    +

    Opauth Response +Individual strategies should return this in their callback() method

    +
    + « More » +
    + +
    +

    AbstractStrategy

    +

    Opauth Strategy +Individual strategies are to be extended from this class

    +
    + « More » +
    + +
    + + + + + + + +
    +

    Classes, interfaces and traits

    + + +
    +

    Base

    +

    Opauth Base client +Base class for built in Curl and File transport classes

    +
    + « More » +
    + +
    +

    File

    +

    Opauth Curl +File transport class, uses file_get_contents for environments where curl is not available

    +
    + « More » +
    + +
    +

    Curl

    +

    Opauth Curl +Curl transport class

    +
    + « More » +
    + +
    + + + +
    +
    +
    + + + + diff --git a/namespaces/default.html b/namespaces/default.html index 97b0e39..8a8b2d3 100644 --- a/namespaces/default.html +++ b/namespaces/default.html @@ -1,98 +1,265 @@ - + + - - - -Opauth » default - - - - - - - + + + » \ + + + + + + + + + + + + + + + + + + + +
    - -
    -
    -
    - -
    - -
    -
    - -
    -

    - Classes and interfaces

    -
    -

    Opauth -

    -

    Opauth +

    + Javascript is disabled; several features are only available if Javascript is enabled. +
    + + + +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + +
    +

    Classes, interfaces and traits

    + +
    +

    TransportInterface

    +

    +
    + « More » +
    + +
    +

    StrategyInterface

    +

    Opauth StrategyInterface +Individual strategies should implement this interface

    +
    + « More » +
    + + +
    +

    Opauth

    +

    Opauth Multi-provider authentication framework for PHP

    -
    -« More » -
    -
    -

    OpauthStrategy -

    -

    Opauth Strategy +

    + « More » +
    + +
    +

    Request

    +

    Opauth Request +Parses current request parameters

    +
    + « More » +
    + +
    +

    AutoLoader

    +

    AutoLoader

    +
    + « More » +
    + +
    +

    Response

    +

    Opauth Response +Individual strategies should return this in their callback() method

    +
    + « More » +
    + +
    +

    AbstractStrategy

    +

    Opauth Strategy Individual strategies are to be extended from this class

    -
    -« More » -
    -
    -
    -
    -
    +
    + « More » +
    + +
    + + + + + + + +
    +

    Classes, interfaces and traits

    + + +
    +

    Base

    +

    Opauth Base client +Base class for built in Curl and File transport classes

    +
    + « More » +
    + +
    +

    File

    +

    Opauth Curl +File transport class, uses file_get_contents for environments where curl is not available

    +
    + « More » +
    + +
    +

    Curl

    +

    Opauth Curl +Curl transport class

    +
    + « More » +
    + +
    + + + + +
    +
    + + diff --git a/opauth b/opauth index a442493..dc495ff 160000 --- a/opauth +++ b/opauth @@ -1 +1 @@ -Subproject commit a44249325c9fcb4227181544aa7a8fdc962f6e05 +Subproject commit dc495ff4b0c6de0142434fc29d534a24057b26b7 diff --git a/packages/Opauth.Strategy.html b/packages/Opauth.Strategy.html index 49d27ae..9810914 100644 --- a/packages/Opauth.Strategy.html +++ b/packages/Opauth.Strategy.html @@ -1,95 +1,163 @@ - + + - - - -Opauth » Opauth\Strategy - - - - - - - - + + + » \Opauth.Strategy + + + + + + + + + + + + + + + + + + - -
    - -
    -
    -
    - -
    - -
    -
    - -
    -

    - Classes and interfaces

    -
    -

    OpauthStrategy -

    -

    Opauth Strategy + +

    + +
    + + + + +
    + +
    +
    + +
    + +
    + +
    + + + + + + +
    +

    Classes, interfaces and traits

    + + +
    +

    OpauthStrategy

    +

    Opauth Strategy Individual strategies are to be extended from this class

    -
    -« More » -
    -
    -
    -
    -
    -
    - +
    + « More » +
    + +
    + + +
    +
    +
    + + + diff --git a/packages/Opauth.html b/packages/Opauth.html index 334b6bb..0747191 100644 --- a/packages/Opauth.html +++ b/packages/Opauth.html @@ -1,115 +1,216 @@ - + + - - - -Opauth » Opauth - - - - - - - + + + » \Opauth + + + + + + + + + + + + + + + + + + + +
    - -
    -
    -
    - -
    - -
    -
    - -
    -

    - Classes and interfaces

    -
    -

    Opauth -

    -

    Opauth +

    + Javascript is disabled; several features are only available if Javascript is enabled. +
    + + + +
    + +
    +
    + +
    + +
    + +
    + + + + + + +
    +

    Classes, interfaces and traits

    + +
    +

    StrategyInterface

    +

    Opauth StrategyInterface +Individual strategies should implement this interface

    +
    + « More » +
    + + +
    +

    Opauth

    +

    Opauth Multi-provider authentication framework for PHP

    -
    -« More » -
    - -
    -

    - Classes and interfaces

    -
    -

    OpauthStrategy -

    -

    Opauth Strategy +

    + « More » +
    + +
    +

    Request

    +

    Opauth Request +Parses current request parameters

    +
    + « More » +
    + +
    +

    AutoLoader

    +

    AutoLoader

    +
    + « More » +
    + +
    +

    Base

    +

    Opauth Base client +Base class for built in Curl and File transport classes

    +
    + « More » +
    + +
    +

    File

    +

    Opauth Curl +File transport class, uses file_get_contents for environments where curl is not available

    +
    + « More » +
    + +
    +

    Curl

    +

    Opauth Curl +Curl transport class

    +
    + « More » +
    + +
    +

    Response

    +

    Opauth Response +Individual strategies should return this in their callback() method

    +
    + « More » +
    + +
    +

    AbstractStrategy

    +

    Opauth Strategy Individual strategies are to be extended from this class

    -
    -« More » -
    -
    -
    -
    -
    -
    +
    + « More » +
    + +
    + + +
    +
    + + diff --git a/packages/default.html b/packages/default.html new file mode 100644 index 0000000..1ea45ec --- /dev/null +++ b/packages/default.html @@ -0,0 +1,253 @@ + + + + + + » + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    +
    + +
    + +
    + +
    + + + + + + +
    +

    Classes, interfaces and traits

    + +
    +

    TransportInterface

    +

    +
    + « More » +
    + + +
    + + + + + + + +
    +

    Classes, interfaces and traits

    + +
    +

    StrategyInterface

    +

    Opauth StrategyInterface +Individual strategies should implement this interface

    +
    + « More » +
    + + +
    +

    Opauth

    +

    Opauth +Multi-provider authentication framework for PHP

    +
    + « More » +
    + +
    +

    Request

    +

    Opauth Request +Parses current request parameters

    +
    + « More » +
    + +
    +

    AutoLoader

    +

    AutoLoader

    +
    + « More » +
    + +
    +

    Base

    +

    Opauth Base client +Base class for built in Curl and File transport classes

    +
    + « More » +
    + +
    +

    File

    +

    Opauth Curl +File transport class, uses file_get_contents for environments where curl is not available

    +
    + « More » +
    + +
    +

    Curl

    +

    Opauth Curl +Curl transport class

    +
    + « More » +
    + +
    +

    Response

    +

    Opauth Response +Individual strategies should return this in their callback() method

    +
    + « More » +
    + +
    +

    AbstractStrategy

    +

    Opauth Strategy +Individual strategies are to be extended from this class

    +
    + « More » +
    + +
    + + + +
    +
    +
    + + + + diff --git a/structure.xml b/structure.xml deleted file mode 100644 index bc8acd2..0000000 --- a/structure.xml +++ /dev/null @@ -1,817 +0,0 @@ - - - - - - - - - - - - - Opauth - \Opauth - - - - - - - - $config - - - - - - - - $env - - - - - - - - $strategyMap - - - - - - - - __construct - function - - - - - array - - - boolean - - - - $config - - - - - $run - - - - - - run - function - - - - - - - parseUri - function - - - - - - - loadStrategies - function - - - - - - - validate - function - - - - - string - - - string - - - string - - - string - - - boolean - - - - $input - - - - - $timestamp - - - - - $signature - - - - - $reason - - - - - - callback - function - - - - - - - requireStrategy - function - - env['strategy_dir']]]> - - - string - - - string - - - - $strategy - - - - - - debug - function - - tags -Silence if Opauth is not in debug mode]]> - - - mixed - - - - $var - - - - - - eJytWv1y2zYS/1t+CsTjKaWeJdm59qZnJW5Tx23dJrHrj2aujoZDUZCEM0XyCNK2kvqB7jXuyW538UGAouxer5lJYgKLxWJ38dsP+MXX+SLfGn7++Rb7nJ3mUVUu8Ke3VVKKfl5kt2LKC4bDPC1FHJUiS9msiJb8Litu2Cwr2NkPZ7AEV30TZ/mqEPNFyeDPkf34z7/Z87395+yq/+sqZUeLKmLdRVnmB8Nh9XGVDuJs2aP1iUhvmPmjKTISapAVcyLJo/gmmnNFUgsMS2OeSj3+9uSSvVEDMDnc+jMOyNztO52O5TXcipNISs3801YHN+sA8ZUEznGWzsS8KqJoknAmeVmKdC5p/pzPgKDMGL+PlnnCzVFxyQDMMpjyWQRyMpBhE0k0vY3SmE9JUEk0xPttVnAm0ll2QHqUoMi5KBfVBJVNWteshnfiRgyV7H0rLGoB+Qy3Onk1Ad2yHTU36mx16hMep7eiyNIlqI7dRoXAM8rGOp7ejvQaRosuSuDP5yu2jPIDkht+yEEr7Or8TX9WCJ5OkxVLwQSonCNSLn41GEvN522Uj1yhjrIUpqq4zAr6fpNFU8kqzxhk5SidMs1EcDkgYvoHrAwOwKKiiFbm4A1rGgUZ2kmWJTxK2U5Rpez9goM7FdojmFxkVTJFH8sYTkezEiZFKkoRJeIj8Rr4h5tVaUwyhmFsjtM1krxUknV7u2q7lwzmeQ88T+lAK0EJ6nud2qSzUy6E7B/6/MIlL+a8q3gDUSdYZLIM2MtD1lWj4Q1fhfxeyFJ2gx8uL88uAhAhvDg+/+X4vMc++8x+XOvpce/rgPwvOKD/g94gAFcMBj5h+MPpxWUw3qVd86hc0K7BMFAjcZQkE7h4YVUkauYTEj2Y8SYZ2DSVeVYo4QPJpQRdaqopn1RzmphFieQ0iH+16jrgoDyuClGuPL11SHEdYKYmQxklmv+b198thUj+Mfvqu9Xdl+/394r7L97v/yR/AVf++SjNv/34Mb/89v2rL29/FNOff3p9/1X+9sfJ8u75V+f7R18stVyWsQDvIJ8g7n/d22vMl2LJs0rv/ZwtRVqVXAb6HOgUyq49uBUd1ydab+suOGKcVFO8f2qdIgZ3n8LFFClcxUiyKI5Bi1mx5kNwvTc7UMH/VXFZgt0EiVtb/fz456vji8vw6vzE2B2ACdCr5KF1AM9Nr5U7jgeNUaLWLBIxCaeioMXwP4JGNwy/O3lzHIbgecafDHI8SmtgahhorbrbGt2KGes+I/i390JderM66NG97KAmBEByrbVrK+140FiEyB7gDg9qF8BIHsUL1nV0DjbZgetIarqNEn3/Hatc4/QYbOPzPjiAuXOeJ1HMu2rlriNVT2+rz+aK63s+cH75/7u+ErqENGHOi5AXRVZ0gzNAUojk8SJKIdADkjISk2Uz9sGX4kOAESJi+LMmkjmPxQwgFCZWWQWhPc8THdcBrY7DK3DB8N3p5cnRcc/RsT5pAsHiwsaErmtnxNqeURX8TJMPbuQ5BzBW2j6g77OoAOxh+hZAeDuhmJPzAiy6ZBDeRcqnzeQjIuSXbBLhFVT/wrAoN8UIkuVTfYYct70qhCf9M77My5VnUIpcMhhf2wsBeK0sgitgsMyS7I4XT68iZ7BwrHjYKKOHlTik7w4H5MU91sLKUztZX3Wif8/sRynDyxaK66fYwgcuDsYjxUlldH+UFa22vMxUzY7WWoQYX5PgQE70wyFmSCJngPEsBlcHv0gY7QTgSACMTKMZPyborXmq/SpIeiFX0ATuPkr/HcUAvKyKkiP/nBqlzJKu0oNep2ku6uOk/I65jLr2rGAmLYC7KVr8MTdUnm+d0EOzFjKQwESYQO3y0Cao8sBXtOipjX0PVVI00OkqlVWOyQVey4JVqbnGJtsz+umzYODhp+PEGoaOz89Pz+tN8a/dd0dl84661WXJs7zb7keKUUPcd1ktkbBYxKcDdlms2DzDuA9Q6Yvqh2IIub4s9VkwIwvVzRkoLK6xjLM7qDiQ88bVauUGVPagVUPpeQ2lBgwLcYt7WTSs0c+BRDqV8RV0HFlNQIpuyzQlKyATTCe86TCojR5Ydt+F1rzg83AZlfEiBEfrBsMPw+71q/6vUf/jXv/v/XD8l94w2GWtosAwreRSO30d6/X49f6Ygj19+sjqezEeS1F5DvU78H8Pbhx7Ctca8OUsHv2OLfY3b+Fc5w1Lm3EWKzqncoNyPVtSgdcXaQ6ouWMSWfCQTouLNIP8J30AIQk62y8XljdChiq7fYQmzqp0M5NDtte0cyull98ZI2jrk65rUeysRU1aVy8b6WHZgBIdkDVq+sHKBgbgNbK7rleB9iqrmLfrCNtj69zkOgZ4wRLR7zEqlwcxHbXIvgYw3jlMkH1NsA3J41rXoRmrWvjWsOces5UAwcbJpEAOP556ucWjnMbWcMqgKmUhDwGuu3pQacrzG9IUTXspwIZkRJcNvvushaf1MOPHP7yXOjIGLfFO4btzp3+JEjHFW7pDXAoOBTy273DuFRSfeSkZF9RWsfcY4zrGYGwh9FWijENrjRwQCcPcjkIHsMci2gfUFmkZgkVwv13VQum1rcJ6W5YQwlApoS5crwM7DD7QtkyKeRqVVcH9ZXY4GLetAlCQcLILXmKspp+xQzaLRIKswCtvlaKoTQmjqpX4TcGBZ2rbUHiaA0U6Un2OA5ZmpRrZVEdozlAWGkWlVZLs+hrQQ+7p1NBnRnY1oKKv4X2EllJ9qma0qFVDu2oUXZ919d1O4ahWY2Fzf9IE+fOObf161tEiKJKnDa/onra0V2ea5SH4nwEHHOzWUz2jpAb1C4c66DfSy2Z/CNT022+sweGQ0WKjH2uy7VfurWP8Poc6YLo9Ur0L8i2rPHOSRSQXLf0FHNYu5PqOnwC1dLvGGyhUu8FNuEAJMdz2eAmZMO7m+mOPPYNadG/tfBfWSNMMoMleBhD60VPqYe25XhpypAvbA0ZYIqliU/BFvQi5S+U+5DeSWmhsXoHHYS1voFIfUYFc3acwHWOwAFghLpkpoTFWUZZd0/Yl8By0vyeYZdhPwm0X2R1OL0CqhFOqbjlvwoS6eEeF8niRse0XoP8snR++y0qAlRdD/dlyAEinnpRd4VtVELTb7k2jJwK3FfuPgw/pi0lxuK19Ycf6q8IcHJZQdMQLL6tq6QuPlX+gF9X94QMKi/orBKctSpMiuTthE/Pi4uT03XWgnlBM8qIr7/VpzWQC3ngzqvfNsZ95sMYf2RT0MsC7GNT+9kU45XE25V3Y+uwUocUwZr0NrOf8f+b8/fHjjPVjlOJKjhBoRwBQWiX85XYMOU5xgF472j48xrzA8Q63bF43yCAYbKNlP6TbjX31NawfNhYcfAlQQJQB3KmUUQJiWW6Z9nR7ukrEmKUarWggfPo8r3yH5I3jmSut4EJqqbxUpnHGhy33WJA/iRLqizQoB+wMvR30RPWzwRMd9O0BbSbmZKpmKyiqlONhBFib8yJpG4EbSFsJFHeo0XQQfYoOcK/u6jyt65OUzuurz1H2WyjUMFvCOsejYdi4yFKwk2x6lNd2fKbhwWY8fkbYPIDJDh2/8bTojTvK2zX53J93dIj5iuVge9B6vKc3mhecp7DV6U8ueHtqFNIGx2mbIh/oTrr+66+fVsu8dlQVNPKCK+BeUzNBjaYaGrK1gh8DaN1enIlCllCvxQYO4HYSqaUBdFBd3CgBjU1XTGHALuMUZAAvVhR6sG8g8W3hCH0HPkbE52RmLySE8bJE35YYv7B5gFPUdGjr76k3nY1FiK3C32G3Gvatj+Wl8pq+fv5GWnwMqZVQyYqOYXKvC4dPW2tsrb3rNRbW37Ls/KAuELUrQwF9Qu+GHB/P2B0Eb86+B7UUHJQoyqxQ2nV7j3GSYZ9U5TQgNsIbpkyan4r9Kzx0REzx0GCu+YCpsNSfRTGHCueGUjvFJiuw0PTq4s02GTgH0m+Bj1HraAh5tlvAW539Lh5/fKV+E8Qs35V6y1bxTTNwuDrYdoW0S0Va1wCoJaNv21LGBGQm7jE5jR03g3RMJNx0QtQbADprU88t3rHrz/jC7syyCvJhtwyru2CuObH3Bd8aNGsaRxIkQQlNzwudF6W2rgvrB0QB+IXPqbY7VothqtFOx3mfba6rCehW0pQee6i7Zw/mjCq60A691ucDq3ylcZSZddsfCtqcdtCidZJzEPTwji1VaGxrudgejjlKi/2awHtWFzbmNwZUVkJwzspI/yrTBTpMTP0JnQgJVWOJlNEvXLAlpJlrmLgU9+CuO8CanU7+iZUOOJ/dCMB2wlVtxae2mdsoUIg7PmQXFsRcXarf9hhTUUhu5+R7TkyqgxIyGjkkNiCpltXDfwGRHFMv - - - - - - - - - - - - OpauthStrategy - \OpauthStrategy - - - - - - - - $expects - - - - - - - - $defaults - - - 'email');]]> - - - - - $auth - - - - - - - - $name - - - - - - - - $strategy - - - - - - - - $env - - - - - - - - __construct - function - - - - - array - - - array - - - - $strategy - - - - - $env - - - - - - request - function - - - - - - - callback - function - - - - - - - errorCallback - function - - - - - array - - - - $error - - - - - - shipToCallback - function - - - - - array - - - string - - - - $data - - - - - $transport - - - - - - callAction - function - - - - - string - - - string - - - - $action - - - - - $defaultAction - - - - - - expects - function - - - - - string - - - string - - - mixed - - - - $key - - - - - $not - - - - - - optional - function - - - - - string - - - string - - - mixed - - - - $key - - - - - $default - - - - - - sign - function - - - - - string - - - string - - - - $timestamp - - - - - - mapProfile - function - - - - - array - - - string - - - string - - - - $profile - - - - - $profile_path - - - - - $auth_path - - - - - - hash - function - - - - - string - - - string - - - int - - - string - - - string - - - - $input - - - - - $timestamp - - - - - $iteration - - - - - $salt - - - - - - redirect - function - - - - - string - - - boolean - - - - $url - - - - - $exit - - - - - - clientGet - function - - - - - string - - - array - - - boolean - - - - $url - - - - - $data - - - - - $exit - - - - - - clientPost - function - - - - - string - - - array - - - - $url - - - - - $data - - - - - - serverGet - function - - - - - string - - - array - - - array - - - string - - - string - - - - $url - - - - - $data - - - - - $options - - - - - $responseHeaders - - - - - - serverPost - function - - - - - string - - - array - - - array - - - string - - - string - - - - $url - - - - - $data - - - - - $options - - - - - $responseHeaders - - - - - - httpRequest - function - - - - - string - - - array - - - string - - - string - - - - $url - - - - - $options - - - - - $responseHeaders - - - - - - recursiveGetObjectVars - function - - - - - mixed - - - array - - - - $obj - - - - - - flattenArray - function - - - - - array - - - string - - - array - - - array - - - - $array - - - - - $prefix - - - - - $results - - - - - - envReplace - function - - - - - string - - - array - - - string - - - - $value - - - - - $dictionary - - - - - - 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 - - - - - - - - todo - fixme - -