public static string GetRoleFromToken(JwtSecurityToken token)
        {
            UserIdentityStruct userIdentity = new UserIdentityStruct();

            try {
                return(token.Claims.FirstOrDefault(c => c.Type == nameof(userIdentity.role)).Value);
            } catch {
                return(null);
            }
        }
        public static int GetUserIdFromToken(JwtSecurityToken token)
        {
            UserIdentityStruct userIdentity = new UserIdentityStruct();

            try {
                return(int.Parse(token.Claims.FirstOrDefault(c => c.Type == nameof(userIdentity.userId)).Value));
            } catch {
                return(0);
            }
        }
        private static List <Claim> CreateClaimsList(string userId)
        {
            UserIdentityStruct userIdentity = new UserIdentityStruct {
                role = "nonUser"
            };

            return(new List <Claim> {
                new Claim(JwtRegisteredClaimNames.Sub, userId.Replace(" ", string.Empty)),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(nameof(userIdentity.role), userIdentity.role),
            });
        }
        private static List <Claim> CreateClaimsList(UserEntity user)
        {
            UserIdentityStruct userIdentity = new UserIdentityStruct {
                userId   = user.UserId.ToString(),
                userName = user.UserName,
                role     = user.UserRole.SystemName
            };

            return(new List <Claim> {
                new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(nameof(userIdentity.userId), userIdentity.userId),
                new Claim(nameof(userIdentity.userName), userIdentity.userName),
                new Claim(nameof(userIdentity.role), userIdentity.role)
            });
        }