public async Task <IActionResult> CreateUser([FromBody] User user) { if (user == null) { return(BadRequest()); } try { user.Password = "******"; await _context.Users.AddAsync(user); await _context.SaveChangesAsync(); var userRegistered = await _context.Users.SingleOrDefaultAsync(u => u.Email == user.Email); var userLogged = new UserLoginResponseViewModel() { Id = userRegistered.Id, Name = userRegistered.Name, Email = userRegistered.Email, Token = GenerateToken(), }; return(Ok(userLogged)); } catch (DbUpdateException e) { return(Conflict(e)); } }
public async Task <IActionResult> LoginUser([FromBody] UserLoginRequestViewModel userLogin) { try { var user = await _context.Users.AsNoTracking().SingleOrDefaultAsync(u => u.Email == userLogin.Email && u.Password == userLogin.Password); if (user.Email == null) { return(Unauthorized()); } var userLogged = new UserLoginResponseViewModel() { Id = user.Id, Name = user.Name, Email = user.Email, Token = GenerateToken(), }; return(Ok(userLogged)); } catch (Exception e) { return(Unauthorized(e)); } }
public string GetIdToken(UserLoginResponseViewModel user) { var payload = new Dictionary <string, object> { { "id", user.userid }, { "sub", user.email }, { "email", user.email }, // { "emailConfirmed", user.EmailConfirmed }, }; return(GetToken(payload)); }
public async Task Authenticate_WithGivenViewModel_Returns_OkObjectResult() { //Arrange var user = new UserLoginResponseViewModel { Email = "*****@*****.**", DisplayName = "UserTest" }; _mockUserService .Setup(x => x.Authenticate(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult(user)); //Act var result = await _usersController.Authenticate(new UserLoginRequestViewModel()) as ObjectResult; //Assert result.Should().NotBeNull(); result.Should().BeOfType <OkObjectResult>(); }
public ResponseViewModel <UserLoginResponseViewModel> Authenticate(UserLoginRequestViewModel inputModel) { ResponseViewModel <UserLoginResponseViewModel> response = new ResponseViewModel <UserLoginResponseViewModel>(); List <Error> _lstError = new List <Error>(); UserLoginResponseViewModel _objUserLoginResponseViewModel = new UserLoginResponseViewModel(); try { var finduser = _userRepository.FindByEmail(inputModel.email); if (finduser != null) { if (!_securityHelper.VerifyPasswordHash(inputModel.password, finduser.PasswordHash, finduser.PasswordSalt)) { var errorMessage = _errorMessageService.GetErrorMessagesData("115"); var objError = new Error { Code = "115", Message = errorMessage }; _lstError.Add(objError); } else { string accessToken = _securityHelper.GetAccessToken(inputModel.email); _objUserLoginResponseViewModel.email = finduser.Email; _objUserLoginResponseViewModel.firstname = finduser.FirstName; _objUserLoginResponseViewModel.lastname = finduser.LastName; _objUserLoginResponseViewModel.userid = finduser.UserId; _objUserLoginResponseViewModel.token = accessToken; } } else { var errorMessage = _errorMessageService.GetErrorMessagesData("115"); var objError = new Error { Code = "115", Message = errorMessage }; _lstError.Add(objError); } if (_lstError.Count == 0) { response.Status = true; response.Message = "User authenticated sucessfully"; response.StatusCode = (int)HttpStatusCode.OK; response.Result = _objUserLoginResponseViewModel; } else { response.Status = false; response.Errors = _lstError; response.StatusCode = (int)HttpStatusCode.BadRequest; } } catch (Exception ex) { if (ex.InnerException != null) { _loggerService.LogError(1, "## [UserService][Authenticate] innerexception :" + ex.InnerException.ToString()); if (ex.InnerException.Message != null) { _loggerService.LogError(1, "## [UserService][Authenticate] innerexception message :" + ex.InnerException.Message.ToString()); } } else { _loggerService.LogError(1, "## [UserService][Authenticate] exception :" + ex.Message.ToString()); } response.Status = false; response.Message = _errorMessageService.GetErrorMessagesData("501"); response.StatusCode = (int)HttpStatusCode.BadRequest; } return(response); }