public async Task <IActionResult> Authenticate([FromBody] LoginViewModel model) { string token = ""; ApplicationUser user = await _userManager.FindByEmailAsync(model.email); if ((user != null)) { if (user.EmailConfirmed == true) { var result = await _signInManager.PasswordSignInAsync(model.email, model.password, model.RememberMe, lockoutOnFailure : false); if (result.Succeeded) { token = IdentityUtil.generateJwtToken(user, _appSettings.Secret); var authenticationResultDto = new AuthenticationResultDTO { Status = "success", ResponseCode = "00", ResponseMessage = "User Authenticated", Email = model.email, Token = token }; return(Ok(authenticationResultDto)); } else { var authenticationResultDto = new AuthenticationResultDTO { Status = "failed", ResponseCode = "01", ResponseMessage = "Invalid Credential", Email = model.email, Token = null }; return(BadRequest(authenticationResultDto)); } } } var data = new { status = "fail, user does not exist", user = "", token = "" }; return(new JsonResult(data)); }
public async Task <LoginResultDTO> LoginAsync(string email, string password, bool rememberMe) { string token = ""; ApplicationUser user = await _userManager.FindByEmailAsync(email); if (user != null) { var result = await _signInManager.PasswordSignInAsync(email, password, rememberMe, lockoutOnFailure : false); if (result.Succeeded) { string secret = _appSettings.Secret; token = IdentityUtil.generateJwtToken(user, secret); UserSignInResultDTO customerResult = new UserSignInResultDTO { firstname = user.FirstName, lastname = user.LastName, email = user.Email, phone = user.PhoneNumber, token = token }; LoginResultDTO loginResultDTO = new LoginResultDTO { Status = "success", ResponseCode = "00", ResponseMessage = "Sign in Successfully", UserSignInResult = customerResult, ErrorList = null }; return(loginResultDTO); } else { LoginResultDTO loginResultDTO = new LoginResultDTO { Status = "fail", ResponseCode = "01", ResponseMessage = "Invalid Credentials", UserSignInResult = null, ErrorList = null }; return(loginResultDTO); } } else { LoginResultDTO loginResultDTO = new LoginResultDTO { Status = "fail", ResponseCode = "01", ResponseMessage = "User does not exist", UserSignInResult = null, ErrorList = null }; return(loginResultDTO); } }
public async Task <RegistrationResultDTO> RegisterAsync( string email, string password, bool rememberMe, string lastname, string firstname, string phonenumber) { var isAccountExisting = await this.VerifyAccountExist(email); if (isAccountExisting) { RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO { Status = "fail", ResponseCode = "01", ResponseMessage = "User registration failed. User already exists", UserSignInResult = null, ErrorList = null }; return(registrationResultDTO); } ApplicationUser user = new ApplicationUser(); user.UserName = email; user.Email = email; user.FirstName = firstname; user.LastName = lastname; user.EmailConfirmed = true; user.PhoneNumber = phonenumber; IdentityResult result = _userManager.CreateAsync(user, password).Result; if (result.Succeeded) { UserSignInResultDTO userSignInResult = new UserSignInResultDTO { firstname = firstname, lastname = lastname, email = email, phone = phonenumber }; _userManager.AddToRoleAsync(user, "Customer").Wait(); var signInResult = await _signInManager.PasswordSignInAsync(email, password, rememberMe, lockoutOnFailure : false); if (signInResult.Succeeded) { string secret = _appSettings.Secret; string token = IdentityUtil.generateJwtToken(user, secret); userSignInResult.token = token; RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO { Status = "success", ResponseCode = "00", ResponseMessage = "User registered successfully", UserSignInResult = userSignInResult, ErrorList = null }; return(registrationResultDTO); } else { RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO { Status = "success", ResponseCode = "00", ResponseMessage = "User Registration Successful. Login to retrieve token", UserSignInResult = userSignInResult, ErrorList = null }; return(registrationResultDTO); } } else { RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO { Status = "fail", ResponseCode = "01", ResponseMessage = "User Registration Failed. Please try again later", UserSignInResult = null, ErrorList = null }; return(registrationResultDTO); } }