Контейнер с токенами на предъявителя / ручная проверка - PullRequest
0 голосов
/ 08 июля 2019

Поскольку токен на предъявителя проверяет входящие токены, у него должен быть какой-то контейнер или хотя бы метод для этого.

Так есть ли простой способ получить в список / массив серверов все сгенерированные токены? Или, может быть, некоторые публичные методы, которые принимают строковый токен и возвращают результат bool?

Мне нужно:

- получить количество всех сгенерированных токенов в день

- проверить, есть ли токен в списке и каков его статус

1 Ответ

0 голосов
/ 08 июля 2019

Если вы хотите проверить токен вручную, вы можете попробовать это

private bool ValidateVideoToken(string token)
        {
            var symmetricKey = Encoding.UTF8.GetBytes("symmetricKey");
            var securityKey = new SymmetricSecurityKey(symmetricKey);
            var encryptKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("encryptKey"));//16char
            var jwt = new JwtSecurityToken(token);

            // Verification
            var tokenValidationParameters = new TokenValidationParameters()
            {
                ClockSkew = TimeSpan.Zero,
                ValidAudiences = new string[]
                {
                      "Audience"
                },
                ValidIssuers = new string[]
                {
                      "Issure"
                },
                IssuerSigningKey = securityKey,
                TokenDecryptionKey = encryptKey,
                ValidIssuer = "Issure"
            };

            var handler = new JwtSecurityTokenHandler();

           var claimsPrincipal = handler.ValidateToken(token, tokenValidationParameters, out SecurityToken validatedToken);
            if (claimsPrincipal?.Claims == null || !claimsPrincipal.Claims.Any())
            {
                return false;
            }
            return true;
        }
...