示例#1
0
        private TCMClientResponse CreateUserResponse(string username, bool isAutheticated, List <string> roleList)
        {
            var    t     = new TokenProvider();
            string token = t.CreateToken(username, "www.tieto.com", appSettings.Secret, roleList);

            var context = new ClientContext
            {
                Context = new Context
                {
                    RegUser      = username,
                    ExtUser      = username,
                    ExtChannelId = appSettings.ExtChannelId,
                    ExtId        = appSettings.ExtId,
                    RegToken     = 0,//(appSettings.RegToken != null) ? Convert.ToInt64(appSettings.RegToken) : 0,
                    RegInterface = appSettings.RegInterface,
                    LanguageId   = appSettings.LanguageId
                },
                Token = token,
                //Roles = roleList.ToList(),
                IsAutheticated = isAutheticated
            };

            _logger.Debug(GetType(), JsonConvert.SerializeObject(context));

            var result = new TCMClientResponse
            {
                Data    = context,
                Success = true
            };

            return(result);
        }
示例#2
0
        public string SignIn([FromBody] SignInModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            ModelState.Validate();

            var user = _userRepository.Find(new { login = model.Username });

            if (user != null && !user.Locked)
            {
                string password, salt;
                _userRepository.GetPasswordAndSalt(user.Id, out password, out salt);
                var verified = _saltedHash.VerifyHashString(model.Password, password, salt);
                if (verified)
                {
                    var organization = _organizationRepository.Get(user.OrganizationId);
                    if (organization != null && !organization.Locked)
                    {
                        var roles = _memberRepository.Roles(user.Id, true);
                        return(_tokenProvider.CreateToken(user, organization, roles.ToArray()));
                    }
                }
            }

            throw new PawnshopApplicationException("Имя пользователя или пароль указан не верно");
        }
        public void CreateToken_Should_Return_ErrorResult_When_Inputs_Are_Null()
        {
            var authSettings  = Options.Create <AuthSettings>(_settings);
            var tokenProvider = new TokenProvider(authSettings);
            var acutalResults = tokenProvider.CreateToken(null, false);

            Assert.AreEqual(UserErrorMessages.User_Token_Object_Should_Not_Be_null, acutalResults.GetErrorString());
        }
示例#4
0
        public async Task <IActionResult> Get()
        {
            var    t     = new TokenProvider();
            string token = t.CreateToken("Admin", "www.tieto.com", appSettings.Secret, null);

            var result = new TCMClientResponse
            {
                Data    = token,
                Success = true
            };

            return(Ok(result));
        }
示例#5
0
        public void CreateToken_NullClaimsProvided_ShouldThrowAnException()
        {
            //arrange
            var tokenProvider = new TokenProvider();

            //act
            void Action()
            {
                var token = tokenProvider.CreateToken(null);
            }

            //assert
            Assert.Throws <ArgumentNullException>((Action)Action);
        }
        public void CreateToken_Should_Return_SuccessResult_When_Inputs_Are_Valid()
        {
            var userToken = new TokenInfo
            {
                Id       = 100,
                FullName = "admin"
            };
            var authSettings  = Options.Create <AuthSettings>(_settings);
            var tokenProvider = new TokenProvider(authSettings);
            var acutalResults = tokenProvider.CreateToken(userToken, false);

            Assert.IsTrue(acutalResults.IsSuccessed);
            Assert.Greater(acutalResults.Value.Value.Length, 15);
        }
示例#7
0
        public void CreateToken_SuccessfulCreation_ShouldReturnAToken()
        {
            //arrange
            var tokenProvider = new TokenProvider();

            var claims = new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, "*****@*****.**")
            };

            //act
            var token = tokenProvider.CreateToken(claims);

            //assert
            Assert.False(string.IsNullOrEmpty(token));
        }
示例#8
0
        public void IsTokenExpired_WhenCalledAndTokenIsNotOlderThanGivenTime_FalseExpected()
        {
            // ARRANGE
            var provider       = new TokenProvider();
            var token          = provider.CreateToken();
            var expirationTime = 24;
            var time           = DateTime.UtcNow.AddHours(23).AddMinutes(59).AddSeconds(59);

            SystemTime.Set(() => time);

            // ACT
            var actual = provider.IsTokenExpired(token, expirationTime);

            // ASSERT
            actual.Should().BeFalse();
        }
示例#9
0
        public Token Create(User user)
        {
            var userFromDatabase = _users.Find <User>(entry => entry.Email == user.Email && entry.Password == user.Password).FirstOrDefault();

            if (userFromDatabase != null && userFromDatabase.IsActive)
            {
                string  token    = TokenProvider.CreateToken(24);
                Session session  = new Session(userFromDatabase._id.ToString(), token);
                Token   response = new Token(token);
                _sessions.InsertOne(session);
                return(response);
            }
            else
            {
                return(null);
            }
        }
示例#10
0
        public void CreateToken_SuccessfulCreation_ShouldDecode()
        {
            //arrange
            var tokenProvider = new TokenProvider();

            var claims = new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, "*****@*****.**")
            };

            //act
            var token = tokenProvider.CreateToken(claims);
            var jwt   = new JwtSecurityTokenHandler().ReadToken(token) as JwtSecurityToken;

            //assert
            Assert.NotNull(jwt);
            Assert.Contains(AuthOptions.AUDIENCE, jwt.Audiences);
            Assert.Equal(AuthOptions.ISSUER, jwt.Issuer);
        }
示例#11
0
        public void CreateToken_WhenCalled_ProperTokenExpected()
        {
            // ARRANGE
            var provider = new TokenProvider();
            var time     = DateTime.Now;

            SystemTime.Set(() => time);
            var key = SystemGuid.NewGuid();

            SystemGuid.Set(() => key);
            var expected = Convert.ToBase64String(BitConverter.GetBytes(time.ToBinary())
                                                  .Concat(key.ToByteArray()).ToArray());

            // ACT
            var actual = provider.CreateToken();

            // ASSERT
            actual.Should().BeEquivalentTo(expected);
        }
示例#12
0
        public async Task <object> Authenticate([FromBody] CarDetailerDto carDetailerDto)
        {
            var carDatiler = _carDetailerService.Authenticate(carDetailerDto.Phone, carDetailerDto.Password);

            if (carDatiler == null)
            {
                return(BadRequest(new { message = "Le numéro de téléphone ou le mot de pass est incorrect" }));
            }

            var tokenString = TokenProvider.CreateToken(_appSettings.Secret, carDatiler.Id.ToString() + ",carDetailer");

            return(await Task.FromResult(new
            {
                Id = carDatiler.Id,
                Phone = carDatiler.Phone,
                FirstName = carDatiler.FirstName,
                LastName = carDatiler.LastName,
                Token = tokenString
            }));
        }