🔐 Autenticação com JWT no Blazor Server de Forma Simples
- #C#
- #.NET
- #.NET Core
- #.NET C#
- #JWT
- #.NET 5
🔐 Autenticação com JWT no Blazor Server de Forma Simples
Recentemente, precisei criar uma página de login para autenticar usuários. Foi a primeira vez que implementei autenticação nas minhas aplicações e, como era em Blazor Server, precisei fazer algumas coisas de forma diferente por rodar no servidor usando WebSockets.
📥 1. Recebendo o Token e Criando os Claims
O primeiro passo foi receber o token JWT enviado por outra API após o login. Para isso, criei um serviço chamado TokenServiceApi, com um método que consumia essa API a partir dos dados do usuário que fez login e me retornava o token.
Dentro dele havia informações do usuário, como nome, permissões e outros dados importantes.
A ideia é transformar essas informações em Claims, uma espécie de “lista de atributos” sobre o usuário. Essa conversão é importante porque é a partir dos Claims que o Blazor sabe quem está logado e o que essa pessoa pode fazer no sistema.
🆔 2. Gerando o User Identity
Com os Claims prontos, criei um User Identity, que nada mais é do que o “cartão de identificação” do usuário dentro da aplicação. É como se o sistema dissesse: “Ok, reconheço essa pessoa e sei quais são suas permissões.”
🍪 3. Criando Cookies no Navegador
Depois, precisei salvar essas informações no navegador para que o usuário não precisasse se autenticar cada vez que recarregasse a página.
Para isso, gerei cookies contendo os Claims. Esses cookies funcionam como um “passe” que o navegador apresenta toda vez que o usuário acessa uma nova página, confirmando que ele já fez login.
⚙️ 4. Configurações no Program e no Controller
Aqui vieram duas partes importantes:
No Program, configurei o sistema para verificar se o usuário tinha o cookie. Se não tivesse, ele seria redirecionado para a tela de login. Também defini o tempo de expiração do cookie, ou seja, quanto tempo a sessão do usuário ficaria ativa antes de precisar logar novamente.
No Controller, foi onde realmente criei e enviei o cookie para o navegador assim que o token JWT era validado.
🛡 5. Criando o Authentication Provider
No Blazor Server, é útil ter um Authentication Provider personalizado. Ele é como uma central que guarda os dados do usuário logado para serem usados em qualquer parte da aplicação.
🌐 6. Configurando o Router e o [Authorize]
No App.razor, ativei o Cascading Authentication State, que é necessário para que as páginas possam reconhecer se o usuário está autenticado ou não.
Depois disso, bastou colocar o atributo [Authorize] nas páginas que deveriam ser restritas. Assim, só quem está logado consegue acessar.
📄 7. Usando os Dados do Usuário na Página
Por fim, para buscar mais informações do usuário, além das que já estavam no token, criei um método que consultava outra API. Mas essa parte varia de projeto para projeto.
Quando precisei usar essas informações, apenas injetei o Authentication Provider na página e consultei os Claims salvos.
Agora me fala aqui, já usou autenticação com Blazor Server?




