Esempio n. 1
0
        public SignInUserCommand(UserSignInInput signInInput, IJwtSigningEncodingKey signingEncodingKey)
        {
            Guard.IsNotNull(signInInput, nameof(signInInput));
            Guard.IsNotNull(signingEncodingKey, nameof(signingEncodingKey));

            _signInInput        = signInInput;
            _signingEncodingKey = signingEncodingKey;
        }
Esempio n. 2
0
        public ActionResult SignIn([FromBody] UserSignInInput signInInput)
        {
            if (signInInput == null)
            {
                return(BadRequest("Wrong input parameters"));
            }

            var token = new SignInUserCommand(signInInput, _signingEncodingKey)
                        .Execute(_userRepository);

            return(Ok(token));
        }
        public async Task <IActionResult> SignIn([FromBody] UserSignInInput userSignIn)
        {
            // Get user
            var user = await _user.GetByNameOrEmailAsync(userSignIn.NameId);

            if (user == null)
            {
                return(BadRequest());
            }

            if (string.IsNullOrEmpty(userSignIn.TwoFactorCode) && user.TwoFactorEnabled)
            {
                return(BadRequest("MISSING_2FA"));
            }

            // try sign in
            var signResult = await _userAuth.SignInAsync(user, userSignIn.Password, userSignIn.TwoFactorCode);

            if (signResult.Succeeded)
            {
                // Generatetoken
                var token = await _userAuth.GenerateJWTokenFromUserAsync(user);

                if (token == null)
                {
                    return(BadRequest());
                }
                return(Ok(new SignInSuccessResult
                {
                    Token = token,
                }));
            }
            else if (signResult.IsNotAllowed || signResult.IsLockedOut)
            {
                return(Forbid());
            }

            return(BadRequest());
        }