public async Task <IActionResult> Login(AuthenticateReq model) { try { if (String.IsNullOrEmpty(model.Username) || String.IsNullOrEmpty(model.Password)) { return(BadRequest(new { message = "Tên đăng nhập, mật khẩu không hợp lệ." })); } else { var lst = await _accountService.FindAsync(() => Builders <AccountModel> .Filter.Eq("Username", model.Username)& Builders <AccountModel> .Filter.Eq("Password", model.Password)); if (lst == null || lst.Count() == 0) { return(BadRequest(new { message = "Tài khoản hoặc mật khẩu không đúng." })); } AccountModel account = lst.Where(i => i.IsActive == true).FirstOrDefault(); string token = GenerateJwtToken(account.Username, account.Role); PageTokenModel pageToken = null; if (account.PageTokens == null || account.PageTokens.Count == 0) { return(Ok(new { UserName = account.Username, Role = account.Role, IsReady = false, AccessToken = token })); } pageToken = account.PageTokens.FirstOrDefault(); return(Ok(new { UserName = account.Username, Role = account.Role, IsReady = pageToken == null ? false : pageToken.IsValid, AccessToken = token })); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public IActionResult Authenticate([FromBody] AuthenticateReq model) { var user = _svc.AuthencicateUser(model.username, model.password); if (user == null) { return(BadRequest(new { message = "Username or password is incorrect" })); } // return basic user info and authentication token return(Ok(new { id = user.UserId, })); }