lameck / manuser
"Manager user for Laravel"
Requires
- php: ^5.5.9 || ^7.0
- illuminate/auth: 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*
- illuminate/contracts: 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*
- illuminate/http: 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*
- illuminate/support: 5.1.* || 5.2.* || 5.3.* || 5.4.* || 5.5.* || 5.6.*
- tymon/jwt-auth: dev-develop
This package is not auto-updated.
Last update: 2025-04-30 07:02:18 UTC
README
Packager Manager User com JWT
Packagers são interessantes para otimização de trabalho com programação. Eventos que são comuns a cada projeto poderão ser reaproveitados. Para evitar programar sempre a mesma rotina, os packagers ajudam a acelerar esse processo mantendo você ocupado com o que é realmente necessário. Em resumo, trata-se de otimização das rotinas.
Este packager tem o objetivo de otimizar o roteamento, controllers e middleware para credenciamento utilizando RestFull com JWT.
Assinatura: Packagerlist
INSTALAÇÃO
PROVIDER: app/config/app.php
... Lameck\Manuser\ManuserServiceProvider::class, Tymon\JWTAuth\Providers\LaravelServiceProvider::class
ALIAS: app/config/app.php
'JWTAuth' => Tymon\JWTAuthFacades\JWTAuth::class, 'JWTFactory' => Tymon\JWTAuthFacades\JWTFactory::class
KERNEL: app/http/kernel.php
Comente a linha:
//\App\Http\Middleware\VerifyCsrfToken::class,Adicione em routemiddlware:
'jwt.auth' => Tymon\JWTAuth\MiddlewareGetUserFromToken::class,
'jwt.refresh' => TymonJWTAuth\MiddlewareRefreshToken::class
Comente:
//'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,Adicione:
'throttle' => \Lameck\Manuser\ThrottleRequestsMiddleware::class,
MODEL USER
Adicione em na classe:
use Tymon\JWTAuth\Contracts\JWTSubject; class User extends Authenticatable implements JWTSubject{...} public function getJWTCustomClaims(): array { return []; } public function getJWTIdentifier(){ return $this->getKey(); }
Pare o servidor, se estiver rodando e limpe o cache. Após, reinicie:
php artisan cache:clear;php artisan serve
Se não fizer isso é possivel que a mensagem de erro seja: "Acesso negado"
EXEMPLO
Crie um banco de dados e carregue um seeder:
php artisan migrate
php artisan make:seeder UsersTableSeeder
DB::table('users')->delete(); $users = array( ['name' => 'Jerry Cantrell', 'email' => 'jerry@gmail.com', 'password' => Hash::make('secret')], ['name' => 'Ozzy Osbuorne', 'email' => 'ozzy@me.io', 'password' => Hash::make('secret')], ['name' => 'Leney Stanley', 'email' => 'leney@me.io', 'password' => Hash::make('secret')], ['name' => 'Kurtney Love', 'email' => 'kurtney@me.io', 'password' => Hash::make('secret')], ); DB::table('users')->insert($users);
php artisan db:seed
php artisan jwt:secret
Utilize o postman para testar a api.
POST
localhost:8000/manuser/authenticate?email=jerry@gmail.com&password=secret
GET
localhost:8000/manuser/users?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMFwvbWFudXNlclwvYXV0aGVudGljYXRlIiwiaWF0IjoxNTIyMDIwNTc5LCJleHAiOjE1MjIwMjQxNzksIm5iZiI6MTUyMjAyMDU3OSwianRpIjoidzA0YnRpejU3Q1NZRjRuZyIsInN1YiI6MSwicHJ2IjoiODdlMGFmMWVmOWZkMTU4MTJmZGVjOTcxNTNhMTRlMGIwNDc1NDZhYSJ9.xMWZb27t-VgyE5BbR0N5l1Iyf4Y4n5QBF-IuBA_CJgQ
Em resumo, o packager trata-se de uma automação de uso com API RestFull utilizando JWT - não utilizamos mais o token nativo VerifyCsrfToken - principalmente para cross-site-script, em seu lugar estamos usando JWT. Para utilizarmo-lo, faz-se necessário a configuração manual - comum para quem já é veterano com o framework laravel.
Estarei disponibilizando mais detalhes na wiki
Detalhe
O numero de requisições por default esta 1,1 (1 requisição por minuto - throttle:1,1). Para auterar este valor, basta acessar as dependencias vendor/lameck/manuser/route.php. O primeiro valor é o numero de requisiçes e o segundo é o tempo decorrido até a próxima requisição.
Route::group(['prefix' => 'manuser'], function() { Route::post('authenticate', '\Lameck\Manuser\ManuserController@authenticate'); Route::middleware('jwt.auth','throttle:1,1')->get('users','\Lameck\Manuser\ManuserController@users'); });