CakePHP 2.x JWT Authentication (DEAD)
This project is no longer being actively developed.
This plugin is a CakePHP 2.x Authentication component and view helper for JWT., (*1)
Components
- Auth/JwtTokeAuthenticate - A JSON Web Token implementation for CakePHP 2.6.x
Helpers
- AuthHelper - Utility functions for helping with the authentication of users.
Requirements
- PHP version: PHP 5.3+
- CakePHP version: 2.6 Stable
Support
For support and feature request, please visit the JWT Authentication Plugin Support section., (*2)
License
Copyright 2011 - 2014, Florian KrÀmer
Copyright 2015, Ronald Chaplin, (*3)
Licensed under The MIT Licensebr/
Redistributions of files must retain the above copyright notice., (*4)
Copyright
Copyright 2011 - 2014
Florian KrÀmer
http://github.com/burzum, (*5)
Copyright 2015
Ronald Chaplin
http://github.com/t73biz, (*6)
Version
1.0.6, (*7)
Installation
composer require t73biz/cakephp2-jwt-auth 1.0.6, (*8)
This will install into the Plugin directory (in the JwtAuth folder). To run the tests, simply navigate to your webroot/test.php and follow the links for the test cases for the Authentication Adapter., (*9)
Usage
Configuration
You can either declare this in your Controller's $components array, or on the fly in an action (if you need to load any configuration values, which you can't do when declaring in the $components array, for example)., (*10)
public $components = array(
'Auth' => array(
'authenticate' => array(
'JwtAuth.JwtToken' => array(
'fields' => array(
'username' => 'username',
'password' => 'password',
'token' => 'public_key',
),
'parameter' => '_token',
'userModel' => 'User',
'scope' => array('User.active' => 1),
'pepper' => 'sneezing',
),
),
),
);
Or, (*11)
$this->Auth->authenticate['JwtAuth.JwtToken'] = array(
'fields' => array(
'username' => 'username',
'password' => 'password',
'token' => 'public_key',
),
'parameter' => '_token',
'userModel' => 'User',
'scope' => array('User.active' => 1),
'pepper' => Configure::read('API.token.pepper'),
);
Where (excluding common authentication items):, (*12)
-
fields is an array containing the details of which passed values (POSTed) contain the username, password and token
-
token is used to hold a unique key against the user once authenticated and is also stored in the JWT
-
parameter is the query string parameter that could hold the JWT
-
header is the HTTP header that could hold the JWT
-
pepper is the salt to use when encrypting your JWT (keep this super secret!)
Defaults
array(
'fields' => array(
'username' => 'username',
'token' => 'token'
),
'parameter' => '_token',
'header' => 'X_JSON_WEB_TOKEN',
'userModel' => 'User',
'scope' => array(),
'recursive' => 0,
'contain' => null,
'pepper' => '123'
);
Authentication
You can authenticate by passing a valid JWT as either:, (*13)
- The query string parameter defined as
parameter in the config array (defaults to _token)
- The contents of the header defined as
header in the config array (defaults to X_JSON_WEB_TOKEN)
TODO
Implement an end to end example for inside clients and 3rd party client usage., (*14)