makise-co / auth
Makise-Co Auth component
v2.0.0-beta1
2020-12-05 17:39 UTC
Requires
- php: ^7.4|^8.0
- ext-json: *
- makise-co/framework: ~2.0.0
Requires (Dev)
- makise-co/http: ~2.0.0
- phpstan/phpstan: ^0.12.18
- phpstan/phpstan-phpunit: ^0.12.6
- phpunit/phpunit: ^9.0
- swoole/ide-helper: ^4.4
Suggests
- makise-co/http: For HTTP integration
This package is auto-updated.
Last update: 2025-03-06 03:27:57 UTC
README
Authentication and Authorization implementation
Installation
- Register service provider -
MakiseCo\Auth\AuthServiceProvider
- Minimal required configuration config
Example configuration
// config/auth.php return [ 'guards' => [ // guard name 'token' => [ 'class' => \MakiseCo\Auth\Guard\BearerTokenGuard::class, 'provider' => 'database', 'storageKey' => 'token', ] ], 'providers' => [ // user provider name 'database' => [ // your own user provider (should implement UserProviderInterface) 'class' => \App\Auth\MyUserProvider::class, ], ] ];
Usage
// your routes file use MakiseCo\Auth\Guard\GuardInterface; use MakiseCo\Auth\Http\Middleware\AuthorizationMiddleware; use MakiseCo\Http\Router\RouteCollectorInterface; /** @var RouteCollectorInterface $routes */ $routes->addGroup( '/admin', [ 'namespace' => 'App\\Http\\Controller\\Admin\\', 'middleware' => [ \MakiseCo\Auth\Http\Middleware\AuthenticationMiddleware::class, ], 'attributes' => [ // auth guard name GuardInterface::class => 'token', ], ], function (RouteCollectorInterface $routes) { $routes ->get('/users', 'UserController@index') // check user's access rights ->withMiddleware(AuthorizationMiddleware::class) // user must have an "admin" role ->withAttribute(AuthorizationMiddleware::ROLES, ['admin']); } );