public async Task <IServiceDataResult <ApplicationUsers> > LoginWithPassword(LoginEmailAndPasswordDto loginEmailAndPassword) { var user = await new RestClient <ApplicationUsers, ApplicationUsers>($"{ UserAPI.USEREXISTS}?email={loginEmailAndPassword.Email}").GetAsync(); if (user != null) { if (await new RestClient <ApplicationUsers, bool>(UserAPI.EMAILCONFIRMED).PostAsync(user)) { var userToCheck = await new RestClient <CheckPasswordDto, bool>($"{UserAPI.CHECKPASSWORD}") .PostAsync(new CheckPasswordDto { ApplicationUsers = user, Password = loginEmailAndPassword.Password }); if (!userToCheck) { return(new ErrorDataResult <ApplicationUsers>(GlobalErrors.NotFound, "User's password wrong..!")); } LoggerService.InfoAsync(new FileLogger(message: "User is logged in.", data: loginEmailAndPassword)); return(new SuccessDataResult <ApplicationUsers>(user)); } else { LoggerService.WarnAsync(new DatabaseLogger(message: "User's email is not verified..!", data: user)); return(new ErrorDataResult <ApplicationUsers>(user, GlobalErrors.EmailIsNotVerified, "User's email is not verified..!")); } } return(new ErrorDataResult <ApplicationUsers>(GlobalErrors.NotFound, "User does not exists..!")); }
public async Task <IActionResult> Login(LoginEmailAndPasswordDto loginEmailAndPasswordDto) { var userToLogin = await _authService.LoginWithPassword(loginEmailAndPasswordDto); if (!userToLogin.Success) { return(Ok(userToLogin)); } var result = await _authService.CreateToken(userToLogin.Data).ConfigureAwait(true); return(Ok(result)); }