Ejemplo n.º 1
0
        public string GenerateToken(string email, string Id)
        {
            var emailValid = PandaValidator.EmailIsValid(email);
            var idIsValid  = int.TryParse(Id, out _);

            if (!emailValid || !idIsValid)
            {
                return(string.Empty);
            }

            var claims = new[] {
                new Claim(JwtRegisteredClaimNames.NameId, Id),
                new Claim(JwtRegisteredClaimNames.Email, email),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
            };

            var key        = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Key"]));
            var credential = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var expiredAt        = double.Parse(_configuration["JWT:ExpiredAt"]);
            var expiredTokenDate = DateTime.Now.AddMinutes(expiredAt);
            var token            = new JwtSecurityToken(
                _configuration["JWT:Issuer"],
                _configuration["JWT:Audience"],
                claims,
                expires: expiredTokenDate,
                signingCredentials: credential);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Ejemplo n.º 2
0
        public async Task <Results <long> > CreateUser(PandaUserContract account)
        {
            var emailValid = PandaValidator.EmailIsValid(account.Email);

            if (!emailValid)
            {
                return(PandaResponse.CreateErrorResponse <long>("Email Invalid"));
            }

            var user = await _userManager.FindByEmailAsync(account.Email);

            if (user != null)
            {
                return(PandaResponse.CreateSuccessResponse(user.Id));
            }

            var newAccount = new PandaUser
            {
                Email     = account.Email,
                FirstName = account.FirstName,
                LastName  = account.LastName,
                UserName  = account.Email,
                CreatedAt = now,
                UpdatedAt = now,
            };

            var result = await _userManager.CreateAsync(newAccount, account.Password);

            if (result.Succeeded)
            {
                return(PandaResponse.CreateSuccessResponse(newAccount.Id));
            }
            else
            {
                return(PandaResponse.CreateErrorResponse <long>(result.Errors.Select(s => s.Code + " : " + s.Description).ToArray()));
            }
        }
        public void EmailValidTest(string email, bool isValid)
        {
            var result = PandaValidator.EmailIsValid(email);

            Assert.Equal(result, isValid);
        }