Fiz aqui no NET CORE 8 e funcionou direitinho pai, tou amando sua serie de C#, Peguei um crud com webapi em c# para fazer , e eu nunca mexi com c#, com seus videos estou aprendendo tudo sobre c#
Meu irmão, obrigado pelo vídeo. Tem umas três horas que não consigo fazer meu JWT funcionar na autenticação. Vim em seu video e vi que você setou o ValidateIssuer = false e ValidateAudience = false. Não estou usando validando isso, porém eu só não passei a propriedade ao definir o TokenValidationParameters. Cara, que alivio, muito obrigado!.
Amigo, estou com um problema aqui. No código que tu colocou, JwtBearerDefaults fica vermelho pra mim. Já instalei e reinstalei os 2 pacotes 2 vezes, mas o problema continua. Como resolver?
Rapais tomei um baile pra autenticar kk na Hora de colar o codigo de autenticar voce escreve rapiadão 'Bearer ' eu não tinha reparado kkkkkkk Obrigado pelo conteudo!!
Fala Felipe, estou aprendendo muito com os seus vídeos, como estou começando agora estou tendo um pouco de dificuldade, na hora de iniciar o projeto diz que não é possível conectar ao servidor web "https" o servidor web não está mais em execução, estou a dois dias travado tentando resolver e não consigo, se puder dar uma força, passou a dar esse erro após o minuto 11:40 do vídeo.
Carlos, pode ser um problema no certificado SSL do Visual Studio. Eu tive algo parecido e esses comandos resolveram: 1. Abra o cmd. 2. Execute: dotnet dev-certs https --clean. 3. Depois, execute: dotnet dev-certs https --trust. Veja se funciona para você.
Eu de novo, no AuthController está dando erro no Model.Employeee "var token = TokenService.GenerateToken(new Model.Employee());" ját entei aqui ver o que é mas não encontro,
@@filipebritodev eu de novo, no AuthController não está reconhecendo o Model.Employee "var token = TokenService.GenerateToken(new Model.Employee());" e se coloco algum nome dentro até abre a API mas ao gerar o token estoura um erro também
Eu segui todos os passos, mas eu me encarei com um problema, ao apertar bo cadeado para autorizar, mesmo que eu meta um token errado, ele me autoriza, e qua do eu faço a requisição aparece o erro 401, mas quando eu meto o token certo, recebo o mesmo erro.
Felipe, ótimo vídeo! como seria os response de erro quando o token nao e autenticado (401). Queria mostrar minha própria mensagem personalizada. "Token não autorizado".
Fala Edson, espero que esteja tudo bem contigo. Desculpa pela demora, mas você pode criar um Authorize personalizado. Vou te passar um exemplo: public class CustomAuthorization : AuthorizeAttribute { protected override void HandleUnauthorizedRequest(HttpActionContext actionContext) { actionContext.Response = new HttpResponseMessage { StatusCode = HttpStatusCode.Forbidden, Content = new StringContent("You are unauthorized to access this resource") }; } } [CustomAuthorization] public IHttpActionResult Get() { return Ok(); } Fonte: stackoverflow.com/questions/42505523/how-to-return-custom-message-if-authorize-fails-in-webapi
Fala Filipe, estou tento um problema em uma aplicação nova ao tentar acessar a DNS que está hosteando o meu serviço via docker. Tenho um erro 504 ao tentar acessar essa rota, porém localmente consigo rodar normalmente. Sabe se tenho que fazer alguma configuração estra no meu startup?
A única possível causa de bloqueio da aplicação seria a falta de configuração adequada do CORS, um tópico que detalho mais adiante nessa série de vídeos. Recomendo verificar os logs da aplicação para identificar se há algum erro utilizando o comando: docker logs ID_CONTAINER Dessa forma, será possível obter mais informações sobre eventuais problemas e diagnosticar a situação com maior precisão.
Bom dia Filipe, estou acompanhando seus vídeos e agregando muito conhecimento, desde já lhe agradeço. Filipe, acompanhei o projeto, fui desenvolvendo junto com os vídeos, tudo funcionando perfeitamente, mesmo com os NUGETS ATUALIZADOS PARA OS ATUAIS, está gerando o token normal, mas tem um detalhe, no momento de testar os métodos da api após a autenticação com o token, dá a mensagem como se não tivesse sido autorizado. Consegue dar uma luz, por favor?
Fala Felipe, tudo certo? Cara, em JS nós conseguimos tanto criar o token, quanto descerializar o mesmo. Tem alguma forma de fazer isso em c#? Descerializar e pegar as informações do usuário pra validar uma rota put das informações do usuário por exemplo (nesse exemplo verificando se o usuário está editando as duas informações e não a de outro usuário)
Tem sim! Vou te passar um código de exemplo para você tentar no seu projeto. Caso não consiga, não se preocupe que na próxima aula vou trazer esse tema. //No arquivo do Controller [HttpPost] public async Task Exemplo() { var user = GetNameUser(this.User); } public string GetNameUser(ClaimsPrincipal user) { var claims = user.Identity as ClaimsIdentity; var nameUser = ExtractObjectValue(claims, "nameUser"); return nameUser; } public string ExtractObjectValue(ClaimsIdentity claimIdentity, string param) { IEnumerable claims = claimIdentity.Claims; var value = claims.FirstOrDefault(x => x.Type == param); if (value == null) { throw new Exception("Token inválido."); } return value.Value; }
Fala mestre, uma pergunta sobre Tokens, no seguinte cenário, usuario solicita alteração de senha de sua conta o sistema gera um token de segurança e encaminha no E-mail do usuario, ao clicar no link ele é redirecionado para alterar sua senha, porém o token fica exposto na url, minha pergunta. Isso seria seguro, deixar token exposto na url?
Fala Filipe, como sempre ótimo vídeo! Parabéns! Estou com Problema no meu arquivo de configuração do TokenService quando passo como parametro para o Generatetoken O Employee. Ele diz que "O nome do tipo ou do namespace "Employee" não pode ser encontrado." Já tentei instalar os pacotes que o visual studio recomendo, mas também não deu certo. Consegue me ajudar? Obrigado.
Fala Rafael, tudo bom? Verifica o namespace (caminho do arquivo) da sua classe "Employee" e tenta chamar a classe incluindo o caminho completo, por exemplo: "WebApi.Model.Employee".
Seus videos são ótimos mas uma sugestão que eu gostaria de dar é evitar esse copiar e colar de códigos, isso deixa o vídeo muito mais confuso do que deveria e acaba estragando sua didática e a proposta do video Por mais que o código seja grande, digite e vai explicando enquanto digita, isso ajuda muito mais quem ta assistindo do que ver código que ta vindo do "nada" abraço
Cara, tô acompanhando seus vídeos, me da uma ajuda. Eu tentei replicar seu código e ele não reconhece o "JwtBearerDefaults", tô usando .NET8, tentei voltar para o .NET7 e o erro continua. Se puder me ajudar fico muito grato.
Estou com o mesmo problema, só que só é resolvido ao instalar o pacote "Microsoft.AspNetCore.Authentication.JwtBearer" que não é mencionado no video, pesquisando na internet o erro parece ser a falta dele mesmo, mas ao realizar a instalação dele, apesar de reconhecer as variavéis, a rota não autorizada. Sempre recebo um retormo 401, sem nenhum motivo para a não autorização.
Vendo as dependencia desse projeto que ele fez no Github vi que ele usa sim o pacote que mencionei, na versão 7.0.1 apesar de não ter dito no video, talvez seja instalado como dependencia e etc, o problema é que não consigo instalar esta versão, me diz que não é suportado pelo .net 6.0
Fiz aqui no NET CORE 8 e funcionou direitinho pai, tou amando sua serie de C#, Peguei um crud com webapi em c# para fazer , e eu nunca mexi com c#, com seus videos estou aprendendo tudo sobre c#
Show! Sucesso aí nos estudos.😊
Cara, que vídeo incrível. Parabéns pelo trabalho!
Muito obrigado 😁
Meu irmão, obrigado pelo vídeo. Tem umas três horas que não consigo fazer meu JWT funcionar na autenticação. Vim em seu video e vi que você setou o ValidateIssuer = false e ValidateAudience = false. Não estou usando validando isso, porém eu só não passei a propriedade ao definir o TokenValidationParameters. Cara, que alivio, muito obrigado!.
Programação tem umas lutas dessas mesmo kk Mas que bom que ajudou 😃
Já dei o like antes de começar o vídeo porque já sei que seus tutoriais são top mesmo! kkk
Parabéns e obrigado por compartilhar o conhecimento!
Eu que agradeço pela força! 😁
Cara, salvou demais! Meu parabéns pelo trabalho! Ganhaste um inscrito!
Opa, Obrigado 😁
@@filipebritodev de nada!
Amigo, estou com um problema aqui. No código que tu colocou, JwtBearerDefaults fica vermelho pra mim. Já instalei e reinstalei os 2 pacotes 2 vezes, mas o problema continua. Como resolver?
vc é foda, te amo
Opa rsrs. Obrigado😀
Arrasou irmãozão 💪🏻
Rapais tomei um baile pra autenticar kk na Hora de colar o codigo de autenticar voce escreve rapiadão 'Bearer ' eu não tinha reparado kkkkkkk Obrigado pelo conteudo!!
kkk foi mal. É o costume. Mas que bom que você conseguiu autenticar. 😁
Fala Felipe, estou aprendendo muito com os seus vídeos, como estou começando agora estou tendo um pouco de dificuldade, na hora de iniciar o projeto diz que não é possível conectar ao servidor web "https" o servidor web não está mais em execução, estou a dois dias travado tentando resolver e não consigo, se puder dar uma força, passou a dar esse erro após o minuto 11:40 do vídeo.
Carlos, pode ser um problema no certificado SSL do Visual Studio. Eu tive algo parecido e esses comandos resolveram:
1. Abra o cmd.
2. Execute: dotnet dev-certs https --clean.
3. Depois, execute: dotnet dev-certs https --trust.
Veja se funciona para você.
@@filipebritodev Muito obrigado, deu certo. Continue gravando vídeos como esse, está me ajudando muito. Show de bola.
Show! Pode deixar 😃
Eu de novo, no AuthController está dando erro no Model.Employeee
"var token = TokenService.GenerateToken(new Model.Employee());" ját entei aqui ver o que é mas não encontro,
@@filipebritodev eu de novo, no AuthController não está reconhecendo o Model.Employee "var token = TokenService.GenerateToken(new Model.Employee());" e se coloco algum nome dentro até abre a API mas ao gerar o token estoura um erro também
Eu segui todos os passos, mas eu me encarei com um problema, ao apertar bo cadeado para autorizar, mesmo que eu meta um token errado, ele me autoriza, e qua do eu faço a requisição aparece o erro 401, mas quando eu meto o token certo, recebo o mesmo erro.
Dar uma olhada no console, apresentar alguma mensagem de erro na validação. Checar também se está colocando o "Bearer _TOKEN" na frente do token.
Se ainda tiver problema, aparece lá no discord e manda alguns prints do código.
Felipe, ótimo vídeo!
como seria os response de erro quando o token nao e autenticado (401).
Queria mostrar minha própria mensagem personalizada. "Token não autorizado".
Fala Edson, espero que esteja tudo bem contigo. Desculpa pela demora, mas você pode criar um Authorize personalizado. Vou te passar um exemplo:
public class CustomAuthorization : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
actionContext.Response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.Forbidden,
Content = new StringContent("You are unauthorized to access this resource")
};
}
}
[CustomAuthorization]
public IHttpActionResult Get()
{
return Ok();
}
Fonte: stackoverflow.com/questions/42505523/how-to-return-custom-message-if-authorize-fails-in-webapi
Fala Filipe, estou tento um problema em uma aplicação nova ao tentar acessar a DNS que está hosteando o meu serviço via docker. Tenho um erro 504 ao tentar acessar essa rota, porém localmente consigo rodar normalmente.
Sabe se tenho que fazer alguma configuração estra no meu startup?
A única possível causa de bloqueio da aplicação seria a falta de configuração adequada do CORS, um tópico que detalho mais adiante nessa série de vídeos.
Recomendo verificar os logs da aplicação para identificar se há algum erro utilizando o comando:
docker logs ID_CONTAINER
Dessa forma, será possível obter mais informações sobre eventuais problemas e diagnosticar a situação com maior precisão.
Bom dia Filipe, estou acompanhando seus vídeos e agregando muito conhecimento, desde já lhe agradeço.
Filipe, acompanhei o projeto, fui desenvolvendo junto com os vídeos, tudo funcionando perfeitamente, mesmo com os NUGETS ATUALIZADOS PARA OS ATUAIS, está gerando o token normal, mas tem um detalhe, no momento de testar os métodos da api após a autenticação com o token, dá a mensagem como se não tivesse sido autorizado. Consegue dar uma luz, por favor?
Consegui resolver, valeu... 🙌
Shoow! 😁
@@AAgênci.a O que era?
Fala Felipe, tudo certo?
Cara, em JS nós conseguimos tanto criar o token, quanto descerializar o mesmo.
Tem alguma forma de fazer isso em c#? Descerializar e pegar as informações do usuário pra validar uma rota put das informações do usuário por exemplo (nesse exemplo verificando se o usuário está editando as duas informações e não a de outro usuário)
Tem sim! Vou te passar um código de exemplo para você tentar no seu projeto. Caso não consiga, não se preocupe que na próxima aula vou trazer esse tema.
//No arquivo do Controller
[HttpPost]
public async Task Exemplo()
{
var user = GetNameUser(this.User);
}
public string GetNameUser(ClaimsPrincipal user)
{
var claims = user.Identity as ClaimsIdentity;
var nameUser = ExtractObjectValue(claims, "nameUser");
return nameUser;
}
public string ExtractObjectValue(ClaimsIdentity claimIdentity, string param)
{
IEnumerable claims = claimIdentity.Claims;
var value = claims.FirstOrDefault(x => x.Type == param);
if (value == null)
{
throw new Exception("Token inválido.");
}
return value.Value;
}
Fala mestre, uma pergunta sobre Tokens, no seguinte cenário, usuario solicita alteração de senha de sua conta o sistema gera um token de segurança e encaminha no E-mail do usuario, ao clicar no link ele é redirecionado para alterar sua senha, porém o token fica exposto na url, minha pergunta. Isso seria seguro, deixar token exposto na url?
É seguro sim, porém esse Token deverá ter um tempo de vida menor, para evitar qualquer uso indevido.
@@filipebritodev Muito obrigado pelo seu feedback.
Fala Filipe, como sempre ótimo vídeo! Parabéns! Estou com Problema no meu arquivo de configuração do TokenService quando passo como parametro para o Generatetoken O Employee. Ele diz que "O nome do tipo ou do namespace "Employee" não pode ser encontrado." Já tentei instalar os pacotes que o visual studio recomendo, mas também não deu certo. Consegue me ajudar? Obrigado.
Fala Rafael, tudo bom? Verifica o namespace (caminho do arquivo) da sua classe "Employee" e tenta chamar a classe incluindo o caminho completo, por exemplo: "WebApi.Model.Employee".
Seus videos são ótimos mas uma sugestão que eu gostaria de dar é evitar esse copiar e colar de códigos, isso deixa o vídeo muito mais confuso do que deveria e acaba estragando sua didática e a proposta do video
Por mais que o código seja grande, digite e vai explicando enquanto digita, isso ajuda muito mais quem ta assistindo do que ver código que ta vindo do "nada"
abraço
Obrigado pela dica. Fiquei preocupado com o tempo do vídeo e não me atentei a este detalhe.
Vamos melhorar esse ponto nos próximos vídeos!
Eeeee🎉
Cara, tô acompanhando seus vídeos, me da uma ajuda. Eu tentei replicar seu código e ele não reconhece o "JwtBearerDefaults", tô usando .NET8, tentei voltar para o .NET7 e o erro continua. Se puder me ajudar fico muito grato.
Na verdade eu consegui usando a versão 7.0.14 ao inves da 8.0 do pacote nuget.
Top!! 😊.
Estou com o mesmo problema, só que só é resolvido ao instalar o pacote "Microsoft.AspNetCore.Authentication.JwtBearer" que não é mencionado no video, pesquisando na internet o erro parece ser a falta dele mesmo, mas ao realizar a instalação dele, apesar de reconhecer as variavéis, a rota não autorizada. Sempre recebo um retormo 401, sem nenhum motivo para a não autorização.
Vendo as dependencia desse projeto que ele fez no Github vi que ele usa sim o pacote que mencionei, na versão 7.0.1 apesar de não ter dito no video, talvez seja instalado como dependencia e etc, o problema é que não consigo instalar esta versão, me diz que não é suportado pelo .net 6.0
@@filipebritodev Tamém copiei a parete que é implementada a autenticação na inicialização e não tive resultado positivo