Example #1
0
        public async Task <IActionResult> Register([FromForm] RegisterModel model)
        {
            var user = new IdentityUser
            {
                UserName = model.Login
            };

            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                // Example of additng the role claim to the user
                if (model.Login == "admin")
                {
                    await CreateAdminRoleIfNotExists();

                    await _userManager.AddToRoleAsync(user, "Admin");
                }

                var roles = await _userManager.GetRolesAsync(user);

                return(Ok(_jwtTokenService.GetToken(user, roles)));
            }

            return(BadRequest(result.Errors));
        }
        public async Task <IActionResult> LogIn([FromBody] UserLoginApiModel user)
        {
            try
            {
                var _user = await _userManager.FindByEmailAsync(user.Email);

                if (_user == null)
                {
                    return(StatusCode(204, $"User {user.Email} doesn`t found"));
                }
                var confirmPassword = _userManager.PasswordHasher.VerifyHashedPassword(_user, _user.PasswordHash, user.Password);
                if (confirmPassword == PasswordVerificationResult.Failed)
                {
                    return(StatusCode(401, "Password doesn`t match"));
                }
                var token = _tokenFabric.GetToken(_user).Result;

                var response = new
                {
                    user_id     = _user.Id,
                    acces_token = token
                };

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }
        }
Example #3
0
        public async Task <IActionResult> Register([FromForm] RegisterModel model)
        {
            var user = new IdentityUser
            {
                UserName = model.Login
            };

            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                return(Ok(_jwtTokenService.GetToken(user)));
            }

            return(BadRequest(result.Errors));
        }
        private async Task <IActionResult> ChangeCurrentUserPassword(string oldPassword, string newPassword)
        {
            var userId = HttpContext.User.FindFirst(Identity.IdentityConstants.UserIdClaimType).Value;

            var user = await _userManager.FindByIdAsync(userId);

            var result = await _userManager.ChangePasswordAsync(user, oldPassword, newPassword);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }

            var roles = await _userManager.GetRolesAsync(user);

            return(Ok(_jwtTokenService.GetToken(user, roles)));
        }
Example #5
0
        public void If_UserId_Is_Null_Throw_ArgumentNullException(string userId, string username)
        {
            Action action = () => service.GetToken(userId, username);

            action.Should().Throw <ArgumentNullException>();
        }
        public void GetToken_ClaimsAreNull_WeGetToken()
        {
            var token = _tokenService.GetToken(null);

            Assert.IsTrue(token != null);
        }