//Login function public async Task <LoginRespond> LoginServiceAsync(StudentLoginModel model) { //validation functions var context = new ValidationContext(model, serviceProvider: null, items: null); var results = new List <ValidationResult>(); if (Validator.TryValidateObject(model, context, results, true)) { string passwordEncoded = Encoder(model.Password); //encode password return(await CheckInfoAsync(model, passwordEncoded)); //check whether user exists } else { //If validation failed LoginRespond loginRespond = new LoginRespond { Pass = false, Email = model.Email, Token = "Failed to login due to the incorrect email or password", LoginTime = DateTime.Now }; return(loginRespond); } }
public ActionResult <ReadUserDto> ResetPasswordEmail(ResetPassEmailRequest request) { try{ LoginRespond r = _service.resetPass(request.Email, request.NewPass); return(Ok(r)); }catch (Exception e) { Console.WriteLine(e.Message); return(BadRequest(e.Message)); } }
public ActionResult <ReadUserDto> signIn(LoginRequest user) { try{ LoginRespond r = _service.signIn(user); return(Ok(r)); }catch (Exception e) { Console.WriteLine(e.ToString()); return(BadRequest(e.Message)); } }
public ActionResult <ReadUserDto> signIn(LoginRequest user) { try{ LoginRespond r = _service.signIn(user); //if(r!=null) setTokenCookie(r.RefreshToken,r.RefreshTokenId); return(Ok(r)); }catch (Exception e) { Console.WriteLine(e.ToString()); return(BadRequest(e.Message)); } }
public async Task <LoginRespond> Login(LoginModel loginModel) { LoginRespond loginRespond = new LoginRespond(); try { loginRespond = await Post <LoginRespond, LoginModel>(LoginUserAPI, loginModel); } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); } return(loginRespond); }
public async Task <ActionResult> Login([FromBody] StudentLoginModel model) { try { LoginRespond loginRespond = await _accountService.LoginServiceAsync(model); if (loginRespond.Pass) { return(Ok(loginRespond)); } else { return(BadRequest(loginRespond)); } } catch { return(BadRequest(model)); } }
//For login --helper //Generate token and update logs private async Task <LoginRespond> CheckInfoAsync(StudentLoginModel studentLogin, string passwordEncoded) { var user = _context.Users.SingleOrDefault(i => i.Email == studentLogin.Email); if (user.Password == passwordEncoded) { LoginLogger loginLogger = new LoginLogger { Email = studentLogin.Email, Password = passwordEncoded, LoginSuccess = true, Time = DateTime.Now }; _context.LoginLogs.Add(loginLogger); await _context.SaveChangesAsync(); string token = Encoder(DateTime.Now.ToString()); var student = _context.Students.SingleOrDefault(i => i.Email == studentLogin.Email); bool isAccepted = false; if (student != null) { isAccepted = student.AdminPermition == true ? true : false; } LoginRespond loginRespond = new LoginRespond { Pass = true, Email = loginLogger.Email, Token = token, LoginTime = DateTime.Now, IsAdmin = user.UserRole == Role.Admin ? true : false, IsAccepted = isAccepted }; await AddTokenLog(loginLogger.Email, token, user.UserRole); user = null; return(loginRespond); } else { LoginLogger loginLogger = new LoginLogger { Email = studentLogin.Email, Password = passwordEncoded, LoginSuccess = false, Time = DateTime.Now }; _context.LoginLogs.Add(loginLogger); await _context.SaveChangesAsync(); return(new LoginRespond { Pass = false, Email = studentLogin.Email, LoginTime = DateTime.Now, Token = "Login Failed" }); } }