Пример #1
0
        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");
            }
        }
Пример #2
0
        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()}"));
        }