O Inertia lida com a autenticação do usuário com o Laravel aproveitando os recursos de autenticação integrados do Laravel e estendendo-os para funcionar perfeitamente com a arquitetura de aplicativo de página única (SPA) do Inertia. Aqui estão os pontos-chave:
1. Usando a autenticação padrão do Laravel:
- Inertia usa a autenticação padrão baseada em sessão do Laravel, o que significa que os usuários são autenticados usando os mecanismos de autenticação integrados do Laravel.
- Esta abordagem elimina a necessidade de criar uma API separada para autenticação, já que o Inertia pode interagir diretamente com o sistema de autenticação do Laravel[1][2][3].
2. Compartilhando o usuário autenticado:
- O método `share` do Inertia é usado para compartilhar o usuário autenticado com o frontend. Isso permite que o frontend acesse o objeto do usuário e o utilize para verificações de autorização[2].
3. Verificações de autorização:
- As verificações de autorização são realizadas no frontend usando o objeto de usuário compartilhado pelo Inertia. Isso garante que o frontend possa exibir ou ocultar dinamicamente o conteúdo com base nas permissões do usuário[2].
4. Transformando Dados:
- A transformação de dados é crucial para verificações de autorização. O método `share` do Inertia pode ser usado para transformar dados antes que eles cheguem ao frontend, facilitando o tratamento de requisitos de autorização complexos[2].
5. Kits iniciais:
- O Laravel fornece kits iniciais como Laravel Breeze e Laravel Jetstream que oferecem pontos de partida lindamente projetados para incorporar autenticação em seu novo aplicativo Laravel. Esses kits incluem opções de scaffolding baseadas em Livewire ou Inertia, facilitando a integração da autenticação com sua aplicação Inertia[4].
Ao aproveitar esses recursos, o Inertia fornece uma maneira contínua e eficiente de lidar com a autenticação do usuário com o Laravel, permitindo que os desenvolvedores se concentrem na construção de seu aplicativo sem se preocupar com as complexidades da autenticação e autorização.
Citações:[1] https://atlas.dev/blog/using-inertia-with-laravel-in-2024
[2] https://sebastiandedeyne.com/handling-authorization-in-a-laravel-and-inertia-application
[3] https://github.com/inertiajs/inertia-laravel/issues/21
[4] https://laravel.com/docs/11.x/authentication
[5] https://stackoverflow.com/questions/66080777/laravel-inertia-js-and-vue-check-if-user-is-logged-in