renanivo/authoritarian

An OAuth 2 client for PHP with multiple authorization flows support

0.0.3 2013-11-19 19:47 UTC

This package is not auto-updated.

Last update: 2024-05-07 00:12:10 UTC


README

Build Status Code Climate Test Coverage

An OAuth 2 client for PHP with multiple authorization flows support

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->setRedirectUri('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();

Generate Docs

  • Download apigen.phar:

    curl -sS http://apigen.org/installer | php
  • Run ApiGen:

    php apigen.phar generate