Exemplo n.º 1
0
        private static Claim[] defaultClaim(UserResponseResource user)
        {
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            };

            return(claims);
        }
Exemplo n.º 2
0
        private static Claim[] WithDetails(UserResponseResource user)
        {
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim("email", user.Email),
            };

            if (user.PersonalDetail != null && user.PersonalDetail.FirstName != null)
            {
                claims = new [] {
                    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                    new Claim("email", user.Email),
                    new Claim("firstName", user.PersonalDetail.FirstName),
                    new Claim("lastName", user.PersonalDetail.LastName),
                };
            }

            return(claims);
        }
Exemplo n.º 3
0
        public static string generateUserToken(UserResponseResource user, IConfiguration _config, Boolean withDetails = false)
        {
            // Create token an sent;
            var claims = withDetails ? WithDetails(user) : defaultClaim(user);

            var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value));

            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor()
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = creds
            };

            var tokenhandler = new JwtSecurityTokenHandler();

            var token = tokenhandler.CreateToken(tokenDescriptor);

            // var data = new {token = tokenhandler.WriteToken(token)};

            return(tokenhandler.WriteToken(token));
        }