private object GeraToken(LoginUsuarioInfoDto userInfo) { var claims = new[] { new Claim(JwtRegisteredClaimNames.UniqueName, userInfo.UserName), new Claim("melhorLinux", "KDE_Neon"), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var key = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(_configuration["Jwt:key"])); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var expiracao = _configuration["TokenConfiguration:ExpireHours"]; var expiration = DateTime.UtcNow.AddHours(double.Parse(expiracao)); JwtSecurityToken token = new JwtSecurityToken( issuer: _configuration["TokenConfiguration:Issuer"], audience: _configuration["TokenConfiguration:Audience"], claims: claims, expires: expiration, signingCredentials: credentials); return(new UsuarioTokenDTO() { Authenticated = true, Token = new JwtSecurityTokenHandler().WriteToken(token), Expiration = expiration, Message = "Token JWT OK" }); }
public async Task <IActionResult> Registrar([FromBody] RegisterUsuarioInfoDto userInfo) { var user = new Usuario { UserName = userInfo.UserName, Email = userInfo.Email, EmailConfirmed = true, PasswordHash = userInfo.Password }; var result = await _userManager.CreateAsync(user, userInfo.Password); if (!result.Succeeded) { return(BadRequest(result.Errors)); } await _signInManager.SignInAsync(user, false); var model = new LoginUsuarioInfoDto() { UserName = userInfo.UserName, Password = userInfo.Password }; return(Ok(GeraToken(model))); }
public async Task <IActionResult> Login([FromBody] LoginUsuarioInfoDto userInfo) { var result = await _signInManager.PasswordSignInAsync(userInfo.UserName, userInfo.Password, isPersistent : false, lockoutOnFailure : false); if (result.Succeeded) { return(Ok(GeraToken(userInfo))); } else { ModelState.AddModelError(string.Empty, "Login Inválido...."); return(BadRequest(ModelState)); } }