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.");
            }
        }
Exemplo n.º 2
0
        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);
 }
Exemplo n.º 4
0
 public async Task <IActionResult> Login([FromBody] LoginAccountCommand command)
 {
     return(Ok(await Mediator.Send(command)));
 }