public async Task CheckUserExists(LoginAccountContract contract) { var user = await _userManager.FindByNameAsync(contract.UserName); if (user == null) { throw new BaseException("Invalid user name or password"); } var validPass = await _userManager.CheckPasswordAsync(user, contract.Password); if (!validPass) { throw new BaseException("Invalid user name or password"); } }
public async Task <IActionResult> Login([FromQuery] LoginRequestQueryContract loginRequest, [FromBody] LoginAccountContract credentials) { await _authService.CheckState(loginRequest.state); await _authService.CheckUserExists(credentials); var code = await _authService.GenerateAuthorizationCode(credentials.UserName, loginRequest.client_id, loginRequest.redirect_uri); var query = new QueryBuilder(); query.Add("code", code); query.Add("state", loginRequest.state); return(Redirect($"{loginRequest.redirect_uri}{query.ToString()}")); }