Install
Get composer and execute:
php composer.phar require renanivo/authoritarian
Usage
Just setup your flow and request an access token:
Client Credentials Flow
<?php
use Authoritarian\OAuth2;
use Authoritarian\Flow\ClientCredentialsFlow;
$flow = new ClientCredentialsFlow();
$flow->setClientCredential('client id', 'client secret');
$oauth2 = new OAuth2('http://example.com/oauth/token');
$token = $oauth2->requestAccessToken($flow)->json();
Authorization-Code Flow
in the login page:
<?php
use Authoritarian\OAuth2;
use Authoritarian\Flow\AuthorizationCodeFlow;
$flow = new AuthorizationCodeFlow();
$flow->setAuthorizationUrl('http://example.com/oauth/authorize');
$flow->setClientCredential('client id', 'client secret');
$flow->setCallbackUri('http://example.com/callback');
header('Location: ' . $flow->getAuthUrl());
in the callback page:
<?php
use Authoritarian\OAuth2;
use Authoritarian\Flow\AuthorizationCodeFlow;
$flow = new AuthorizationCodeFlow();
$flow->setClientCredential('client id', 'client secret');
$flow->setCode($_GET['code']);
$oauth2 = new OAuth2('http://example.com/oauth/token');
$token = $oauth2->requestAccessToken($flow)->json();
Resource Owner Password
<?php
use Authoritarian\OAuth2;
use Authoritarian\Flow\ResourceOwnerPasswordFlow;
$flow = new ResourceOwnerPasswordFlow(
'username',
'password'
);
$flow->setClientCredential('client id', 'client secret');
$oauth2 = new OAuth2('http://example.com/oauth/token');
$token = $oauth2->requestAccessToken($flow)->json();