aist / authentication-middleware
PSR-7 Authentication Middleware
dev-master
2018-01-17 18:52 UTC
Requires
- php: ^7.0
- container-interop/container-interop: ^1.2
- http-interop/http-middleware: ^0.4.1
- psr/http-message: ^1.0
- zendframework/zend-authentication: ^2.5
- zendframework/zend-expressive-router: ^2.1
- zendframework/zend-expressive-template: ^1.0
- zendframework/zend-session: ^2.8
Requires (Dev)
- malukenho/docheader: ^0.1.5
- mmoreram/php-formatter: ^1.3
- phpunit/phpunit: ^6.0.7 || ^5.7.14
- satooshi/php-coveralls: ^1.0
- zendframework/zend-coding-standard: ~1.0.0
- zendframework/zend-diactoros: ^1.1
This package is not auto-updated.
Last update: 2024-11-10 04:43:07 UTC
README
PSR-7 Authentication Middleware.
Installation
Install via composer:
$ composer require aist/authentication-middleware
Configuration
Add configuration file
copy authentication-middleware.global.php.dist to authentication-middleware.global.php
// authentication-middleware.global.php.dist return [ 'authentication-middleware' => [ 'identity_key' => 'identity', 'default_redirect_route' => 'login', 'success_redirect_route' => 'home', 'success_role_redirect_route' => [ 'admin' => 'admin/dashboard', 'user' => 'home', ], 'whitelist' => [ 'login', 'logout', ], ], ];
Register your own authentication adapter
by invokables
'invokables' => [ 'authentication.adapter' => \App\Authentication\Adapter\YourAdapter::class, ],
or by factories
'factories' => [ 'authentication.adapter' => \App\Authentication\Adapter\YourAdapterFactory::class, ],
Register your own login action
'factories' => [ \Aist\AuthenticationMiddleware\Action\LoginAction::class => LoginFactory::class, ],
Register your own login form
'form_elements' => [ 'factories' => [ 'Aist\AuthenticationMiddleware\Form\LoginForm' => \App\Form\LoginCompanyFormFactory::class, ], ],
Add pipe
to protect whole app
// Add more middleware here that needs to introspect the routing results; this // might include: // // - route-based authentication // - route-based validation // - etc. // Authentication middleware $app->pipe(\Aist\AuthenticationMiddleware\Middleware\AuthenticationMiddleware::class); // Permission middleware // At this point, if no identity is set by authentication middleware, the // UnauthorizedHandler kicks in; alternately, you can provide other fallback // middleware to execute. //$app->pipe(\Aist\AuthorizationMiddleware\Middleware\UnauthorizedHandler::class); // Authorization $app->pipe(\Aist\AuthorizationMiddleware\Middleware\AuthorizationMiddleware::class);
or use for specific route
$app->get( '/', [ \Aist\AuthenticationMiddleware\Middleware\AuthenticationMiddleware::class, \Aist\AuthorizationMiddleware\Middleware\AuthorizationMiddleware::class, App\Action\DashboardAction::class, ], 'dashboard' );
Add authentication routes
$app->route('/login', \Aist\AuthenticationMiddleware\Action\LoginAction::class, ['GET', 'POST'], 'login'); $app->get('/logout', Aist\AuthenticationMiddleware\Action\LogoutAction::class, 'logout');