2017 © Pedro Peláez
 

library manuser

"Manager user for Laravel"

image

lameck/manuser

"Manager user for Laravel"

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

PL5-Manuser-JWT

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., (*1)

Este packager tem o objetivo de otimizar o roteamento, controllers e middleware para credenciamento utilizando RestFull com JWT., (*2)


Assinatura: Packagerlist, (*3)


INSTALAÇÃO

  • 1. composer require lameck/manuser
  • 2. php artisan vendor:publish --provider="Lameck\Manuser\ManuserServiceProvider"
  • , (*4)


    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:
    , (*5)

    //\App\Http\Middleware\VerifyCsrfToken::class,

    Adicione em routemiddlware:
    , (*6)

    'jwt.auth' => Tymon\JWTAuth\MiddlewareGetUserFromToken::class,
    'jwt.refresh' => TymonJWTAuth\MiddlewareRefreshToken::class

    Comente:
    , (*7)

    //'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

    Adicione:
    , (*8)

    'throttle' => \Lameck\Manuser\ThrottleRequestsMiddleware::class,

    MODEL USER

    Adicione em na classe:
    , (*9)

    use Tymon\JWTAuth\Contracts\JWTSubject;
    class User extends Authenticatable implements JWTSubject{...}
    public function getJWTCustomClaims(): array {
            return [];
        }
    public function getJWTIdentifier(){
            return $this->getKey();
        }
    
    


    , (*10)

    Pare o servidor, se estiver rodando e limpe o cache. Após, reinicie:
    php artisan cache:clear;php artisan serve, (*11)


    Se não fizer isso é possivel que a mensagem de erro seja: "Acesso negado", (*12)


    EXEMPLO

    Crie um banco de dados e carregue um seeder:
    php artisan migrate
    php artisan make:seeder UsersTableSeeder
    , (*13)

    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, (*14)

    Utilize o postman para testar a api.
    , (*15)

    POST, (*16)

    localhost:8000/manuser/authenticate?email=jerry@gmail.com&password=secret


    <img src="https://s18.postimg.cc/nhr3b26gp/Captura_de_tela_de_2018-03-25_20-56-48.png" width="900" height="500", (*17)


    , (*18)

    GET, (*19)

    localhost:8000/manuser/users?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMFwvbWFudXNlclwvYXV0aGVudGljYXRlIiwiaWF0IjoxNTIyMDIwNTc5LCJleHAiOjE1MjIwMjQxNzksIm5iZiI6MTUyMjAyMDU3OSwianRpIjoidzA0YnRpejU3Q1NZRjRuZyIsInN1YiI6MSwicHJ2IjoiODdlMGFmMWVmOWZkMTU4MTJmZGVjOTcxNTNhMTRlMGIwNDc1NDZhYSJ9.xMWZb27t-VgyE5BbR0N5l1Iyf4Y4n5QBF-IuBA_CJgQ


    , (*20)

    , (*21)


    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., (*22)

    Estarei disponibilizando mais detalhes na wiki, (*23)


    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., (*24)

    <, (*25)

    blockquote>, (*26)

    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');
    });
    

    <, (*27)

    blockquote>, (*28)

    The Versions