Skip to content

Instantly share code, notes, and snippets.

@flyingluscas
Last active October 28, 2016 01:52
Show Gist options
  • Save flyingluscas/7305c817007d485153038a5e2b659f5e to your computer and use it in GitHub Desktop.
Save flyingluscas/7305c817007d485153038a5e2b659f5e to your computer and use it in GitHub Desktop.
Listeners for JWT events on Laravel 5

Listeners for JWT events on Laravel 5

1. Criando Listener

Dentro da pasta app\Listeners crie um arquivo com o seguinte nome JWTAbsentTokenListener.php, e adicione o seguinte conteúdo :

<?php

namespace App\Listeners;

use App\Events\SomeEvent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class JWTAbsentTokenListener
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @return void
     */
    public function handle()
    {
        return response()->json([
            'error' => 'Token is missing.',
        ], 500);
    }
}

2. Registrando nosso listener

Para registrar o listener criado a um evento disparado pelo JWT faça seguinte. No arquivo app\Providers\EventServiceProvider.php adicione a seguinte linha ao final do método boot.

/**
 * Register any other events for your application.
 *
 * @param  \Illuminate\Contracts\Events\Dispatcher  $events
 * @return void
 */
public function boot(DispatcherContract $events)
{
    parent::boot($events);

    \Event::listen('tymon.jwt.absent', \App\Listeners\JWTAbsentTokenListener::class);
}

Lista de Eventos

  • tymon.jwt.absent Token não encontrado na requisição.
  • tymon.jwt.expired Token expirado.
  • tymon.jwt.invalid Token inválido.
  • tymon.jwt.user_not_found Usuário não encontrado.
  • tymon.jwt.valid Token válido (usuário é passado como segundo argumento para o método handle do listener).

Pronto :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment