public async Task <object> Login(LoginAccountCommand login) { Validate(login, new LoginAccountValidator()); var result = await _signInManager.PasswordSignInAsync(login.User, login.Password, false, lockoutOnFailure : false); if (result.Succeeded) { var claims = new[] { new Claim(ClaimTypes.Name, login.User) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(new Sha512(Environment.GetEnvironmentVariable("Password")).ToString())); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: Environment.GetEnvironmentVariable("Issuer"), audience: Environment.GetEnvironmentVariable("Audience"), claims: claims, expires: DateTime.Now.AddMinutes(30), signingCredentials: creds); return(new { token = new JwtSecurityTokenHandler().WriteToken(token) }); } if (result.IsLockedOut) { throw new ArgumentException("User account locked out."); } else { throw new ArgumentException("Invalid login attempt."); } }
public async Task <IActionResult> Login([FromBody] LoginAccountCommand command) { var result = await _mediator.Send(command); if (result == null) { return(Unauthorized()); } return(Ok(result)); }
public async void LoginReturnsFalseWithBadLoginInfo(string tName, string tPassword) { var vObjects = Setup(); var vLogin = new LoginAccount { Name = tName, Password = tPassword, }; var vBadLoginAccountCommand = new LoginAccountCommand( vObjects.DocumentStore, vObjects.HashProvider.Object, vLogin); var vResult = await vBadLoginAccountCommand.Execute(); Assert.IsFalse(vResult); }
public async Task <IActionResult> Login([FromBody] LoginAccountCommand command) { return(Ok(await Mediator.Send(command))); }