0
respostas

Faltou código da classe Autenticador no tópico "Consolidando o seu conhecimento" da aula 5

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.