承载令牌容器/手动验证

时间:2019-07-08 07:43:51

标签: asp.net asp.net-core asp.net-core-2.0 asp.net-core-webapi bearer-token

由于承载令牌正在验证传入令牌,因此它应该具有某种容器或至少具有此方法的容器。

那么有什么简单的方法可以获取所有生成的令牌的服务器列表/数组?还是一些采用字符串令牌并返回布尔结果的公共方法?

我需要:

-每天获取所有已生成令牌的数量

-检查令牌是否存在于列表中以及它的状态是什么

1 个答案:

答案 0 :(得分:0)

如果您想手动验证令牌,可以尝试

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;
        }