public async Task <IActionResult> SignIn(string email, string passwordHash) { var result = await taskExecutor.Execute(async() => { var authenticationResult = await authenticateUserCommand.Execute(email, passwordHash); var now = DateTime.UtcNow; var jwt = new JwtSecurityToken( issuer: AuthOptions.ISSUER, audience: AuthOptions.AUDIENCE, notBefore: now, claims: authenticationResult.UserIdentity.Claims, expires: now.Add(TimeSpan.FromMinutes(AuthOptions.LIFETIME)), signingCredentials: new SigningCredentials(AuthOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256)); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); return(new Models.SignInResult { UserId = authenticationResult.UserId, Name = authenticationResult.Name, DepartmentId = authenticationResult.DepartmentId, DepartmentName = authenticationResult.DepartmentName, Email = authenticationResult.Email, Token = encodedJwt }); }); if (result.ErrorMessage == null) { return(Json(result.Result)); } return(BadRequest(result.ErrorMessage)); }
public async Task <ApiResponse> Authenticate(AuthenticateRequestModel model) { var result = await _authenticateUserCommand.Execute(new AuthenticateUserCommandArgs { Email = model.Email, Password = model.Password }); return(ApiResponse.Success(result)); }
public void AuthenticateUser(string username, string password) { AuthenticateUserCommand loginCommand = new AuthenticateUserCommand(username, password); loginCommand.SuccessActions.Add(args => UserLoggedIn(args)); loginCommand.Execute(); }