fshangala / auth2-ation
Authentication and authorization system for laravel and lumen
v1.0.1
2022-01-30 18:04 UTC
This package is auto-updated.
Last update: 2024-09-29 06:35:56 UTC
README
- add lumen's withFacades
- add lumen's withEloquent
- register the following service providers
$app->register(Fshangala\Auth2Ation\Auth2AtionServiceProvider::class);
$app->register(Fshangala\Auth2Ation\Auth\FAuthServiceProvider::class);
- register the authenticate middlewares
$app->middleware([
Fshangala\Auth2Ation\Http\Middleware\Errors::class,
]);
$app->routeMiddleware([
'auth' => Fshangala\Auth2Ation\Http\Middleware\Authenticate::class,
]);
- run migrations
- add the following line to use the Gate for permissions
use Illuminate\Support\Facades\Gate;
- Check for permission like this
Gate::authorize('permission',[['action'=>'create','resource'=>'permissions']]);
or
Gate::authorize('permission',[['action'=>'read','resource'=>'users','target'=>$res->id]]);
or
Gate::authorize('permission',[['action'=>'read','resource'=>'users','type'=>'student']]);
If not granted the request aborts with a 403 Forbiden response
- Primitive actions
- create
- read
- update
- delete
- Known resources
- permissions
- users
Helpful status codes
$statusTexts = [
100 => 'Continue',
101 => 'Switching Protocols',
102 => 'Processing', // RFC2518
103 => 'Early Hints',
200 => 'OK',
201 => 'Created',
202 => 'Accepted',
203 => 'Non-Authoritative Information',
204 => 'No Content',
205 => 'Reset Content',
206 => 'Partial Content',
207 => 'Multi-Status', // RFC4918
208 => 'Already Reported', // RFC5842
226 => 'IM Used', // RFC3229
300 => 'Multiple Choices',
301 => 'Moved Permanently',
302 => 'Found',
303 => 'See Other',
304 => 'Not Modified',
305 => 'Use Proxy',
307 => 'Temporary Redirect',
308 => 'Permanent Redirect', // RFC7238
400 => 'Bad Request',
401 => 'Unauthorized',
402 => 'Payment Required',
403 => 'Forbidden',
404 => 'Not Found',
405 => 'Method Not Allowed',
406 => 'Not Acceptable',
407 => 'Proxy Authentication Required',
408 => 'Request Timeout',
409 => 'Conflict',
410 => 'Gone',
411 => 'Length Required',
412 => 'Precondition Failed',
413 => 'Content Too Large', // RFC-ietf-httpbis-semantics
414 => 'URI Too Long',
415 => 'Unsupported Media Type',
416 => 'Range Not Satisfiable',
417 => 'Expectation Failed',
418 => 'I\'m a teapot', // RFC2324
421 => 'Misdirected Request', // RFC7540
422 => 'Unprocessable Content', // RFC-ietf-httpbis-semantics
423 => 'Locked', // RFC4918
424 => 'Failed Dependency', // RFC4918
425 => 'Too Early', // RFC-ietf-httpbis-replay-04
426 => 'Upgrade Required', // RFC2817
428 => 'Precondition Required', // RFC6585
429 => 'Too Many Requests', // RFC6585
431 => 'Request Header Fields Too Large', // RFC6585
451 => 'Unavailable For Legal Reasons', // RFC7725
500 => 'Internal Server Error',
501 => 'Not Implemented',
502 => 'Bad Gateway',
503 => 'Service Unavailable',
504 => 'Gateway Timeout',
505 => 'HTTP Version Not Supported',
506 => 'Variant Also Negotiates', // RFC2295
507 => 'Insufficient Storage', // RFC4918
508 => 'Loop Detected', // RFC5842
510 => 'Not Extended', // RFC2774
511 => 'Network Authentication Required', // RFC6585
];