t73biz / cakephp2-jwt-auth
Cakephp 2 JWT Authentication
Installs: 3 227
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 4
Forks: 13
Type:cakephp-plugin
Requires
- composer/installers: *
- firebase/php-jwt: ~2.0
Requires (Dev)
- phpunit/phpunit: 3.*
This package is not auto-updated.
Last update: 2024-07-18 16:45:20 UTC
README
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.
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.
License
Copyright 2011 - 2014, Florian Krämer Copyright 2015, Ronald Chaplin
Licensed under The MIT License
Redistributions of files must retain the above copyright notice.
Copyright
Copyright 2011 - 2014 Florian Krämer http://github.com/burzum
Copyright 2015 Ronald Chaplin http://github.com/t73biz
Version
1.0.6
Installation
composer require t73biz/cakephp2-jwt-auth 1.0.6
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.
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).
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
$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):
fields
is an array containing the details of which passed values (POSTed) contain theusername
,password
andtoken
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 JWTheader
is the HTTP header that could hold the JWTpepper
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:
- 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 toX_JSON_WEB_TOKEN
)
TODO
Implement an end to end example for inside clients and 3rd party client usage.