Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
14
respostas

Duvidas JWT

Boa noite galera, segue umas dúvidas...

1 - Para pegar o usuário logado, o Auth::user(), isso funciona no laravel ? 1.1 - Caso funcione como eu defino que vai estar de fato logado ?

2 - Quando vai criar o nosso próprio middleware, ainda precisa desse método no AuthServiceProvider ? Se sim, por quê? Se não, como deixo deixo ele 'default' ?

 public function boot()
    {
        $this->app['auth']->viaRequest('api', function (Request $request) {
            if (!$request->hasHeader('Authorization')) {
                return null;
            }
            $authorizationHeader = $request->header('Authorization');
            $token = str_replace('Bearer ', '', $authorizationHeader);
            $dadosAutenticacao = JWT::decode($token, env('JWT_KEY'), ['HS256']);
            return User::where('email', $dadosAutenticacao->email)
                 ->first();
        });

        //
    }
14 respostas

Fala, Thiago. Hoje estamos no Laravel 6. Por que você está perguntando sobre Laravel 1.1? rsrsrs

Quanto à segunda parte, não entendi sua dúvida.

kkk não é laravel 1.1 é o tópico 1 e depois 1.1 kkk1 - Para pegar o usuário logado, o Auth::user(), isso funciona no Laravel ? \

1.1 - Caso funcione como eu defino que vai estar de fato logado ?

seria assim kkk

A segunda pergunta era o seguinte, nos vídeos quando começamos a usar o JWT uma parte da autenticação é feita no arquivo AuthServiceProvider, mas depois é criado o nosso próprio middleware(autenticador), e tem toda a lógica de autentificação lá, minha dúvida é se é necessário ter toda a lógica no AuthServiceProvider ainda.

solução!

Fala, Thiago!

Agora entendi.

Nos cursos de Laravel a gente explica como funciona o login por lá, utilizando formulário pro usuário se logar. Vale a pena dar uma olhada. TL;DR: O usuário fica salvo em sessão.

Quanto à segunda parte, não. Não precisamos do AuthServiceProvider se formos utilizar nosso próprio middleware. Mas que fique claro: Utilizando nosso próprio middleware o Lumen não vai salvar o usuário na sessão e não vai ser possível chamar Auth::user().

Nós criamos um novo middleware só pra efeitos de estudo. Vale mais a pena utilizar o AuthServiceProvider.

O Lumen já está configurado para usar esse provider e através de um guard salvar os seus dados em sessão.

Ok, vou dar uma olhada, estou tentando fazer uma API com o Laravel, o motivo disso é para uma vaga que usam o Laravel, por isso sempre to perguntando coisas relacionados ao Laravel.

Mas vlw por tudo e pela paciência, vlww!

Thiago, vale mto a pena fazer os 3 cursos, então. Os 2 de Laravel e o de Lumen.

Tudo que a gente faz no Lumen é aplicável pro Laravel, então você pode unir o aprendizado de todos os cursos. ;-)

Abração e bons estudos, Thiago!

Eu já fiz!.D, porém não consigo fazer o FormRequest funcionar no laravel para dar retorno Json pela API, funciona normal ele de fato valida, mas retorna nada para o cliente

Aahh sim, Thiago. Agora entendi sua dúvida.

Você está definindo as rotas da sua API em que arquivo?

api.php

O que foi feito tá aqui...

https://github.com/YaakovDantas/livros-api

Fala, Thiago! Então, cara. Como eu disse, é automático

Levantei seu ambiente aqui e as mensagens de erro já estão sendo retornadas como JSON, exatamente como eu disse que aconteceria: https://uploaddeimagens.com.br/imagens/tmp-png-b0d4146c-e013-4c5e-ae77-eb40f5d764c4

;-)

Caraca mannnnn, vlw, não sabia que precisava colocar no POSTMAN esse Accept no header, sem ele não aparece nada, rsrs

Mais uma vez obrigado pela paciência e vlwwwww

Opa, então era esse o problema? hahahaha

Show de bola, mano. Sempre é alguma coisa pequena que a gente deixa passar, né!?

Forte abraço e bons estudos aí! :-D

Ah antes de encerrar o tópico, se tiver algo que possa melhorar nesse projeto, aceito feedback!!!

Opa, Thiago. Confesso que não parei pra olhar o código. Só abri um Controller (nem me lembro qual) pra garantir que o código tinha sido clonado com sucesso.

De cara eu te recomendaria dar uma olhada na PSR-12 e utilizar uma ferramenta no estilo do PHPCS pra te ajudar com isso.

;-)

Ok, mais vez obrigado por tudo e pela gigante paciência, vlw Amanha já tenho o que estudar, pode fechar o tópico!