falco442 / slim-multirole-authentication-authorization
A basic http authentication/authorization middleware with multirole feature
dev-master
2018-11-12 17:07 UTC
Requires
- php: ^5.5 || ^7.2
- ext-mysqli: *
- illuminate/database: ~5.1
- slim/slim: ^3.0
This package is not auto-updated.
Last update: 2024-11-22 20:30:20 UTC
README
Introduction
This Middleware is made for Slim Skeleton Application. It uses Eloquent for its functionalities, so you are supposed that you follow the Slim 3's guide chapter Using Eloquent with Slim to use Slim with Eloquent, the Laravel ORM.
This middleware verifies the presence of the Authorization
header as it's determined by the W3 convention, and blocks/allows the other requests.
Installation
Get it with composer
composer require falco442/slim-multirole-authentication-authorization
Use
You can then bootstrap your app with your settings:
require 'vendor/autoload.php'; use falco442\Middleware\Authentication\BasicHttpAuthentication; // Create and configure Slim app $config = [ 'settings' => [ 'addContentLengthHeader' => false, 'displayErrorDetails' => true, // other settings 'authentication' => [ 'userModel' => 'your-eloquent-model-with-namespace', // for example 'App\\Model\\User' 'fields' => [ 'username' => 'email', 'password' => 'password' ], 'jsonResponse' => true, // if you want response in json format 'unauthorizedMessage' => 'Your unauthorized message', 'unauthorizedStatus' => 403 // Usually 403 ] ] ]; $app = new \Slim\App($config); $capsule = new \Illuminate\Database\Capsule\Manager; $capsule->addConnection($config['settings']['db']); $capsule->setAsGlobal(); $capsule->bootEloquent(); $app->get('/',function($request, $response, $args){ return $response->withJson([1,2,3]); })->add((new BasicHttpAuthentication($app->getContainer()))); // Run app $app->run();