public async Task <IActionResult> Login([FromBody] PandaUserLoginContract account) { if (!ModelState.IsValid) { return(StatusCode(500, new { Error = ModelState.Values.SelectMany(s => s.Errors.Select(ss => ss.ErrorMessage)).ToList(), Structure = new PandaUserLoginContract { } } )); } var result = await _gatewayFacade.GateWayInvoke( method : BaseMethod, token : Token, path : BasePath, account, query : BaseQueryString ); if (result.IsError()) { return(StatusCode(500, result)); } return(Ok(result)); }
public async Task <Results <RefreshTokenContract> > Login(PandaUserLoginContract account) { var refreshTokenIsNullOrEmpty = await _userLogic.RefreshTokenIsNullOrEmpty(account.Email); if (!refreshTokenIsNullOrEmpty) { return(PandaResponse.CreateErrorResponse <RefreshTokenContract>("User still loged in.")); } var signInResult = await _userLogic.Login(account); if (signInResult.IsError()) { return(PandaResponse.CreateErrorResponse <RefreshTokenContract>(signInResult.Errors.ToArray())); } account.Id = signInResult.Data.Id; var token = _jwtTokenService.GenerateToken(account.Email, account.Id.ToString()); var refreshToken = _jwtTokenService.GenerateRefreshToken(); var tokenData = new RefreshTokenContract { RefreshToken = refreshToken, Token = token }; var refreshTokenResult = await _userLogic.UpdateRefreshTokenToUser(account.Email, refreshToken); if (refreshTokenResult.IsError()) { return(PandaResponse.CreateErrorResponse <RefreshTokenContract>(refreshTokenResult.Errors.ToArray())); } return(PandaResponse.CreateSuccessResponse(tokenData)); }
public async Task <Results <PandaUser> > Login(PandaUserLoginContract account) { var signInResult = await _signInManager.PasswordSignInAsync(account.Email, account.Password, false, false); if (signInResult.Succeeded) { return(PandaResponse.CreateSuccessResponse(await _userManager.FindByEmailAsync(account.Email))); } else { bool emailValid = await _userRepository.EmailValid(account.Email); if (!emailValid) { return(PandaResponse.CreateErrorResponse <PandaUser>("Email inValid.")); } return(PandaResponse.CreateErrorResponse <PandaUser>("Password inValid.")); } }