Segue abaixo o código necessário (arquivo app/http/middleware/Autenticador.php):
class Autenticador
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
try {
if ($request->hasHeader('Authorization') == false) {
throw new Exception();
}
$authorizationHeader = $request->header('Authorization');
$token = str_replace("Bearer ", "", $authorizationHeader);
$dadosAutenticacao = JWT::decode($token, env('JWT_KEY'), ['HS256']);
$user = User::where('email', $dadosAutenticacao->email)->first();
if (is_null($user)) {
throw new Exception();
}
return $next($request);
} catch (Exception $e) {
return response()->json('Não autorizado!', 401);
}
}
}
Adicionar no arquivo "bootstrap/app.php" o seguinte trecho:
$app->routeMiddleware([
'autenticador' => App\Http\Middleware\Autenticador::class,
]);
Sugiro atualizar o texto desse tópico para evitar frustrações desnessárias. Caso seja proposital ao menos avise que o código não está explicito e que aluno deve aplicar os conhecimentos adquiridos para fazer o seu próprio código.