public async Task <Response <UsuarioQuery> > Handle(AutenticarCommand request, CancellationToken cancellationToken) { var qUsuario = await _usuarioDapperRepository.BuscarUsuarioPorEmail(request.Email); qUsuario.Token = generateJwtToken(qUsuario.Id); return(await Task.FromResult(new Response <UsuarioQuery>(qUsuario))); }
public async Task <IActionResult> Post([FromForm] AutenticarCommand command) { if (command == null) { return(BadRequest("Usuário ou Senha inválidos.")); } var identity = await ObterClaims(command); if (identity == null) { return(BadRequest("Usuário ou Senha inválidos.")); } var userClaims = new[] { new Claim(JwtRegisteredClaimNames.UniqueName, _usuario.Nome.ToString()), new Claim(JwtRegisteredClaimNames.Sub, _usuario.Id.ToString()), new Claim(JwtRegisteredClaimNames.Jti, await _tokenOptions.JtiGenerator()), new Claim(JwtRegisteredClaimNames.Iat, _tokenOptions.ToUnixEpochDate().ToString(), ClaimValueTypes.Integer64), identity.FindFirst("JwtValidation") }; var jwt = new JwtSecurityToken( issuer: _tokenOptions.Issuer, audience: _tokenOptions.Audience, claims: userClaims, notBefore: _tokenOptions.NotBefore, expires: _tokenOptions.Expiration, signingCredentials: _tokenOptions.SigningCredentials); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); var response = new { token = encodedJwt, expires = _tokenOptions.Expiration, usuario = new { id = _usuario.Id, nome = _usuario.Nome } }; return(new OkObjectResult( JsonConvert.SerializeObject(response))); }
private Task <ClaimsIdentity> ObterClaims(AutenticarCommand command) { var usuarioService = new UsuarioService(); var usuario = usuarioService.Autenticar(command.Usuario, command.Senha); if (usuario == null) { return(Task.FromResult <ClaimsIdentity>(null)); } _usuario = usuario; return(Task.FromResult(new ClaimsIdentity( new GenericIdentity(_usuario.Nome, "Token"), new[] { new Claim("JwtValidation", "Usuario") }))); }
public async Task <IActionResult> Autenticar([FromBody] AutenticarCommand usuario) { return(Ok(await Mediator.Send(usuario))); }