Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Falha de autenticação, "não autorizado"

Estou com um problema, o token é gerado, porém quando eu tento acessar as rotas com enviando o token está dando não autorizado.

Autenticador.php

<?php


namespace App\Http\Middleware;


use App\Models\User;
use Firebase\JWT\JWT;
use Illuminate\Http\Request;

class Autenticador
{

    public function handle(Request $request, \Closure $next)
    {
        try {


            if (!$request->hasHeader('Authorization')) {
                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();
            //model usuário, onde o email seja igual a dados autenticacao->email
            //a busca retorna o primeiro resultado

            if (is_null($user)) {
                throw new \Exception();
            }

            return $next($request);
        } catch (\Exception $e){
            return response()->json('Nao autorizado', 401);
        }
    }
}
2 respostas
solução!

Faltaram remover os caracteres :em $token = str_replace('Bearer', '', $authorizationHeader);

O correto seria:

$token = str_replace('Bearer: ', '', $authorizationHeader);

Muito obrigado, era isso mesmo