Пример #1
0
        public async Task <UserLoginResponseViewModel> Authenticate(string email, string password)
        {
            var user = await _mediator.Send(new GetUserByEmailAndPasswordQuery { Email = email, Password = password });

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

            if (user.IsEnabled == false)
            {
                return(null);
            }

            var userData = new UserTokenDataModel {
                Id = user.Id, Email = email, DisplayName = user.DisplayName, UserRole = user.UserRole
            };

            var token = _tokenGenerator.Generate(_appSettings, userData);

            return(new UserLoginResponseViewModel
            {
                Token = token,
                Email = user.Email,
                DisplayName = user.DisplayName,
                UserRole = user.UserRole
            });
        }
Пример #2
0
        public TokenGeneratorTests()
        {
            _appSettings = new AppSettings
            {
                Secret            = "STRINGU ALA BLANAOSSTRINGU ALA BLANAOS BLANAOSSTRINGU ALA BLANAOS BLANAOSSTRINGU ALA BLANAOS BLANAOSSTRINGU ALA BLANAOS",
                TokenLifetimeDays = 7
            };
            _tokenGenerator = new TokenGenerator();
            User            = new UserTokenDataModel
            {
                Id          = 1,
                DisplayName = "testttt",
                Email       = "*****@*****.**",
                UserRole    = UserRole.Admin.ToString()
            };

            Token = _tokenGenerator.Generate(_appSettings, User);

            Key = Encoding.ASCII.GetBytes(_appSettings.Secret);

            Validations = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey         = new SymmetricSecurityKey(Key),
                ValidateIssuer           = false,
                ValidateAudience         = false
            };
            Handler = new JwtSecurityTokenHandler();
        }
Пример #3
0
        public string Generate(AppSettings _appSettings, UserTokenDataModel user)
        {
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(_appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[] {
                    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                    new Claim(ClaimTypes.Name, user.DisplayName),
                    new Claim(ClaimTypes.Role, user.UserRole),
                    new Claim(ClaimTypes.Email, user.Email)
                }),
                Expires            = DateTime.Now.AddDays(_appSettings.TokenLifetimeDays),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }