public async Task <IActionResult> Login(AccountLoginReq request) { if (ModelState.IsValid) { var cookieOptions = new CookieOptions() { HttpOnly = true, SameSite = SameSiteMode.None, Secure = true }; var response = new AccountLoginRes(); var loginResult = await _accountService.Login(request, response); if (loginResult != null) { Response.Cookies.Append("X-Access-Token", loginResult.Token, cookieOptions); Response.Cookies.Append("X-Username", loginResult.UserName, cookieOptions); Response.Cookies.Append("X-Refresh-Token", loginResult.RefreshToken, cookieOptions); return(Ok(response)); } Response.Cookies.Delete("X-Access-Token", cookieOptions); Response.Cookies.Delete("X-Username", cookieOptions); Response.Cookies.Delete("X-Refresh-Token", cookieOptions); return(Unauthorized("Sai tên đăng nhập hoặc mật khẩu, xin mời kiểm tra lại thông tin")); } return(BadRequest(ModelState)); }
//public async Task<string> CreateCookie(AccountLoginRes response) //{ //} public async Task <AccountLoginResult> Login(AccountLoginReq request, AccountLoginRes response) { var user = await _userManager.FindByNameAsync(request.Username); if (user != null) { var loginResult = await _signInManager.CheckPasswordSignInAsync(user, request.Password, false); if (loginResult.Succeeded) { response.FullName = $"{user.LastName} {user.FirstName}"; return(new AccountLoginResult() { UserName = user.UserName, Token = await _tokenService.CreateToken(user), RefreshToken = user.RefreshToken }); } } return(null); }