ohmy-auth (Oma) is a PHP library that simplifies OAuth into a single fluent interface:
use ohmy\Auth;
$credentials = array(
'key' => 'key',
'secret' => 'secret'
);
Auth::init($credentials)
->request('http://term.ie/oauth/example/request_token.php')
->access('http://term.ie/oauth/example/access_token.php')
->GET('http://term.ie/oauth/example/echo_api.php')
->then(function($data) {
# got data
});
Oma only requires PHP (>= 5.3) and the usual extensions for Curl (curl_init()
, curl_setopt()
, etc), JSON (json_encode()
, json_decode()
) and sessions (session_start()
, session_destroy()
).
The best way to install Oma is via Composer. Just add ohmy/auth
to your project's composer.json
and run composer install
. eg:
{
"require": {
"ohmy/auth": "*"
}
}
If you prefer not to use Composer, you can download an archive or clone this repo and put src/ohmy
into your project setup.
use ohmy\Auth;
# configuration
$credentials = array(
'key' => 'key',
'secret' => 'secret'
);
# do 2-legged oauth
$termie = Auth::init($credentials)
# oauth flow
->request('http://term.ie/oauth/example/request_token.php')
->access('http://term.ie/oauth/example/access_token.php')
# api call
$termie->GET('http://term.ie/oauth/example/echo_api.php')
->then(function($data) {
# got data
});
Note: This requires sessions in order to save data between redirects. This will not work properly without sessions!
use ohmy\Auth;
# configuration
$credentials = array(
'consumer_key' => 'your_consumer_key',
'consumer_secret' => 'your_consumer_secret',
'callback' => 'your_callback_url'
);
# do 3-legged oauth
$tumblr = Auth::init($credentials)
# oauth flow
->request('http://www.tumblr.com/oauth/request_token')
->authorize('http://www.tumblr.com/oauth/authorize')
->access('http://www.tumblr.com/oauth/access_token');
# access tumblr api
$tumblr->GET('https://api.tumblr.com/v2/user/info')
->then(function($data) {
# got user data
});
use ohmy\Auth;
# configuration
$credentials = array(
'id' => 'your_github_client_id',
'secret' => 'your_github_client_secret',
'redirect' => 'your_redirect_uri'
);
# do 3-legged oauth
$github = Auth::init($credentials)
# oauth flow
->authorize('https://github.com/login/oauth/authorize')
->access('https://github.com/login/oauth/access_token')
# save access token
->finally(function($data) use(&$access_token) {
$access_token = $data['access_token'];
});
# access github api
$github->GET("https://api.github.com/user?access_token=$access_token", null, array('User-Agent' => 'ohmy-auth'))
->then(function($data) {
# got user data
});
- PHP license: PHP License
- ohmy-auth: New BSD License.