Multi-provider authentication framework for PHP
================================= Opauth is a multi-provider authentication framework for PHP, inspired by OmniAuth for Ruby.
Opauth enables PHP applications to do user authentication with ease.
Opauth provides a standardized method for PHP applications to interface with authentication providers.
Opauth as a framework provides a set of API that allows developers to create strategies that work in a predictable manner across PHP frameworks and applications.
Opauth works well with other PHP applications & frameworks. It is currently supported on:
If your PHP framework of choice is not yet listed, you can still use Opauth like you would a normal PHP component (class).
Guide on how to run the bundled example.
Set DocumentRoot of your web server to example/.
(Opauth can be instantiated in your own PHP app, but we will leave that out of this quick start guide)
Configure Opauth.
First, make a copy of opauth config's file by copying or renaming
opauth.conf.php.default to opauth.conf.php.
Open up opauth.conf.php and make the necessary changes.
Install some Opauth strategies.
Place the strategy files in lib/Opauth/Strategy/.
For this example, we recommend that you start with Opauth-Facebook:
i. Download the strategy files and place them at lib/Opauth/Strategy/Facebook/.
ii. Follow the steps at Opauth-Facebook's README to set up your Faceobok app.
iii. Add the following at opauth.conf.php under Strategy as such:
<?php
'Strategy' => array(
// Define strategies here.
'Facebook' => array(
'app_id' => 'YOUR APP ID',
'app_secret' => 'YOUR APP SECRET'
),
);Finally, send user to http://localhost/facebook to authenticate.
Check out the wiki for more in-depth details, especially on how to use Opauth with your own PHP application.
A strategy is a set of instructions that interfaces with respective authentication providers and relays it back to Opauth.
Provider-specific:
| Strategy | Maintained by |
|---|---|
| Bitbucket | fancyguy |
| Disqus | rasa |
| Do | arbales |
| uzyn | |
| Flickr | pocket7878 |
| Foursquare | pocket7878 |
| GitHub | uzyn |
| uzyn | |
| muhdazrain | |
| uzyn | |
| (Windows) Live | uzyn |
| mixi | ritou |
| OpenID | uzyn |
| PayPal | 24hours |
| Sina Weibo (新浪微博) | dgrabla |
| uzyn | |
| Vimeo | LubosRemplik |
| VKontakte | dgrabla |
| Yahoo! Japan (YConnect) | ritou |
| LINE | Yuzuru Suzuki |
Generic strategy: OAuth
See wiki's list of strategies for an updated list of Opauth strategies or to make requests. Refer also to strategy contribution guide if you would like to contribute a strategy.
PHP 5 (>= 5.2)
with allow_url_fopen enabled
Opauth needs your contributions, especially the following:
More strategies Refer to wiki for contribution guide and inform us when your work is ready.
Plugins for more PHP frameworks and CMSes eg. Symfony, Laravel, WordPress, Drupal, etc.
Guides & tutorials On how to implement Opauth on CakePHP app, etc.
Used Opauth in your project? Let us know!
####v0.4.5 (25 Feb 2018)
####v0.4.4 (10 May 2013)
####v0.4.3 (10 January 2013)
serverPost() bug where user-supplied options were not applied correctly. (thanks @ritou #26)####v0.4.2 (28 August 2012)
session_id() instead of $_SESSION (thanks @sirikkoster #20)####v0.4.1 (22 July 2012)
@ for file_get_contents. (thanks @Takehiro-Adachi)####v0.4.0 (10 June 2012)
mapProfile() and clientGet() for OpauthStrategy class.####v0.3.0 (30 May 2012)
####v0.2.0 (23 May 2012)
strategy_dir defined in config.####v0.1.0 (22 May 2012)
The MIT License Copyright © 2012-2013 U-Zyn Chua (http://uzyn.com)
U-Zyn Chua is a Principal Consultant at Zynesis Consulting.
No open issues yet, or sync has not completed.