Beispiel #1
0
        public async Task <IActionResult> Login([FromBody] LoginDto loginDto)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManagerService.FindByEmailAsync(loginDto.Email);

                if (user == null)
                {
                    return(BadRequest("Login-NotRegistered"));
                }

                var result = await _userManagerService.SignInAsync(loginDto);

                if (result.IsLockedOut)
                {
                    return(BadRequest("Account-Locked"));
                }
                if (result.Succeeded)
                {
                    var generatedToken = _jwtService.GenerateJWTTokenAsync(user);
                    return(Ok(new { token = generatedToken }));
                }
            }
            return(BadRequest());
        }
        public async Task GetEventAdmininistrationByUserIdAsync_ReturnsCorrect()
        {
            // Arrange
            var userId   = Guid.NewGuid().ToString();
            var uniqueId = Guid.NewGuid();
            var userDto  = new UserDTO
            {
                Email = "*****@*****.**",
                Id    = userId
            };

            var roles = new string[]
            {
                "testRole1",
                "testRole2"
            };

            _uniqueIdServiceMock.Setup(x => x.GetUniqueId()).Returns(uniqueId);
            _userManagerServiceMock.Setup(x => x.GetRolesAsync(userDto))
            .ReturnsAsync(roles);

            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.Name, userDto.Email),
                new Claim(JwtRegisteredClaimNames.NameId, userDto.Id),
                new Claim(JwtRegisteredClaimNames.FamilyName, userDto.Id),
                new Claim(JwtRegisteredClaimNames.Jti, uniqueId.ToString()),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, roles[0]),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, roles[1])
            };



            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("2af4ff57-4ca0-4b3a-804b-178ad27aaf88"));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken(
                issuer: "https://localhost:44350/",
                audience: "https://localhost:3000/",
                claims: claims,
                expires: DateTime.Now.AddMinutes(120),
                signingCredentials: creds);

            var tokenHandler = new JwtSecurityTokenHandler();
            var result       = tokenHandler.WriteToken(token);

            // Act
            var result1 = await _jwtService.GenerateJWTTokenAsync(userDto);

            // Assert
            //Assert.IsInstanceOf<IEnumerable<EventAdministration>>(result);
            Assert.AreEqual(result.Length, result1.Length);
        }