Skip to content

oxenti/User

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OxenTI User API plugin for CakePHP 3

This plugin contains a package with API methods for managing Users on a CakePHP 3 application. This plugin implements Authentication and Authorization tasks.

Requirements

  • CakePHP 3.0+

Installation

You can install this plugin into your CakePHP application using composer.

The recommended way to install composer packages is:

composer require oxenti/user

Configuration

In your app's config/bootstrap.php add:

// In config/bootstrap.php
Plugin::load('User');

or using cake's console:

./bin/cake plugin load User

In your app's 'config/app.php' add this to your Datasources array:

	'oxenti_user' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'ỳour_db_host',
        'username' => 'username',
        'password' => 'password',
        'database' => 'databse_name',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
        'log' => false,
        'quoteIdentifiers' => false,
    ],
    'test_oxenti_user' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'ỳour_db_host',
        'username' => 'username',
        'password' => 'password',
        'database' => 'databse_name',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
        'log' => false,
        'quoteIdentifiers' => false,
    ],

In your app's 'AppController.php' set up the Auth componet:

    ...
    $this->loadComponent('Auth', [
        'authorize' => ['Controller'],
        'authenticate' => [
            'Form' => [
                'userModel' => 'User.Users',
                'fields' => [
                    'username' => 'email',
                    'password' => 'password'
                ]
            ],
            'User.Jwt' => [
                'parameter' => '_token',
                'userModel' => 'User.Users',
                'scope' => ['Users.is_active' => 1],
                'fields' => [
                    'id' => 'id'
                ],
            ]
        ],
        'storage' => 'Memory',
        'unauthorizedRedirect' => false
    ]);
    ...

Add the beforeFilter and isAuthorized methods:

    public function beforeFilter(Event $event)
    {
        $this->Auth->deny(['*']);
        $this->Auth->allow(['display']);
    }

    public function isAuthorized($user)
    {
        return false;
    }

Configuration files

Move the 'user.php' config file from the plugin's config folder to your app's config folder.

On your app's 'bootstrap.php' add the user configuration file:

    ...
    try {
        Configure::config('default', new PhpConfig());
        Configure::load('app', 'default', false);
    } catch (\Exception $e) {
        die($e->getMessage() . "\n");
    }

    Configure::load('user', 'default');
    ...

Using extrenal Associations

If you want to associate the Address table with other tables on your application, use the address.php configuration file setting the 'relations' entry to your needs.

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages