Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Opauth plugin for CakePHP v2.x, allowing simple plug-n-play 3rd-party authentication with CakePHP
Latest commit 2ca4dc8 @uzyn Merge pull request #45 from katsukii/fix_strategy_readme
fix the repository url

CakePHP plugin for Opauth

CakePHP 2.x plugin for Opauth.

Opauth is a multi-provider authentication framework.


CakePHP v2.x
Opauth >= v0.2 (submoduled with this package)

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.

Tutorial & sample app

Check out CakePHP bakery for tutorial and the sample branch for a quick sample app.

How to use

  1. Install this plugin for your CakePHP app.
    Assuming APP is the directory where your CakePHP app resides, it's usually app/ from the base of CakePHP.

    cd APP/Plugin
    git clone git:// Opauth
  2. Download Opauth library as a submodule.

    git submodule init
    git submodule update
  3. Add this line to the bottom of your app's Config/bootstrap.php:

    CakePlugin::load('Opauth', array('routes' => true, 'bootstrap' => true));

    Overwrite any Opauth configurations you want after the above line.

  4. Load strategies onto Strategy/ directory.

    Append configuration for strategies at your app's Config/bootstrap.php as follows:

    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'
  5. Go to http://path_to_your_cake_app/auth/facebook to authenticate with Facebook, and similarly for other strategies that you have loaded.

  6. 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:

       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() {

    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'].

  7. (optional) The submoduled Opauth core library may not be of the latest build, to update to the latest:

    git submodule foreach git pull origin master


If your CakePHP app does not reside at DocumentRoot (eg. http://localhost), but at a directory below DocumentRoot (eg. http://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/');

Issues & questions

Used this plugin in your CakePHP project? Let us know!


The MIT License
Copyright © 2012-2013 U-Zyn Chua (

Package building instructions

Instructions for making into a nice zipped package for download.

git checkout master
git submodule update --init --recursive

rm -rf `find . -type d -name .git`

cd ..
mv cakephp-opauth Opauth

zip -mr Opauth


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.

Something went wrong with that request. Please try again.