CakePHP 2.x plugin for Opauth.
Opauth is a multi-provider authentication framework.
This branch is for cakephp-composer with Composer support.
For conventional non-Composer installation of cakephp-opauth, either check out the master branch or download the CakePHP plugin directly.
CakePHP v2.x
Composer
Using Composer?
You can install CakePHP-Opauth plugin directly from Composer at uzyn/cakephp-opauth.
It works for Opauth strategies too!
View notes and Composer-enabled plugin code at composer branch.
Check out CakePHP bakery for tutorial and the sample branch for a quick sample app.
-
Setup Composer
If you do not yet have Composer installed on your system, we recommend CakePHP Composer plugin for easy installation. [Tutorial from Bakery] -
Install this plugin for your CakePHP app, via uzyn/cakephp-opauth from Packagist.
Add these to your
composer.json
residing at your CakePHP'sapp/
directory{ "require": { "uzyn/cakephp-opauth": "*" } }
Run
composer install
. -
Add this line to the bottom of your app's
Config/bootstrap.php
:<?php CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true));
Overwrite any Opauth configurations you want after the above line.
-
Load strategies directly via Composer.
Using Facebook strategy as an example.
composer require opauth/facebook:*
Append configuration for strategies at your app's
Config/bootstrap.php
as follows:<?php CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true)); // Using Facebook strategy as an example Configure::write('Opauth.Strategy.Facebook', array( 'app_id' => 'YOUR FACEBOOK APP ID', 'app_secret' => 'YOUR FACEBOOK APP SECRET' ));
-
Go to
https://path_to_your_cake_app/auth/facebook
to authenticate with Facebook, and similarly for other strategies that you have loaded. -
After validation, user will be redirected to
Router::url('/opauth-complete')
with validated auth response data retrievable available at$this->data
.To route a controller to handle the response, at your app's
Config/routes.php
, add a connector, for example:<?php Router::connect( '/opauth-complete/*', array('controller' => 'users', 'action' => 'opauth_complete') );
You can then work with the authentication data at, say
APP/Controller/UsersController.php
as follows:<?php // APP/Controller/UsersController.php: class UsersController extends AppController { public function opauth_complete() { debug($this->data); } }
Note that this CakePHP Opauth plugin already does auth response validation for you with its results available as a boolean value at
$this->data['validated']
.
If your CakePHP app does not reside at DocumentRoot (eg. https://localhost
), but at a directory below DocumentRoot (eg. https://localhost/your-cake-app
),
add this line to your app's APP/Config/bootstrap.php
, replacing your-cake-app
with your actual path :
<?php // APP/Config/bootstrap.php
Configure::write('Opauth.path', '/your-cake-app/auth/');
- Discussion group: Google Groups
This is the primary channel for support, especially for user questions. - Issues: Github Issues
- Twitter: @uzyn
- Email me: chua@uzyn.com
- IRC: #opauth on Freenode
Used this plugin in your CakePHP project? Let us know!
The MIT License
Copyright © 2012-2013 U-Zyn Chua (https://uzyn.com)
U-Zyn Chua is the Principal Consultant at Zynesis Consulting, specializing in CakePHP.
Looking for PHP web development solutions or consultation? Drop me a mail.