【问题标题】:How to remove nbf claim如何删除 nbf 声明
【发布时间】:2017-10-14 02:56:56
【问题描述】:

一直在到处寻找答案,但似乎找不到适合我的答案。问题是我正在尝试在 c# 中使用 ASP.NET 构建 JWT 令牌。我遇到的问题是它在某个地方自动添加了“nbf”声明到我的声明中,我似乎无法弄清楚如何删除它,因为 API 主机不允许在令牌中使用它。以下是创建令牌的代码:

               var plainTextSecurityKey = "key";
            var signingKey = new Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(
                Encoding.UTF8.GetBytes(plainTextSecurityKey));
            var signingCredentials = new Microsoft.IdentityModel.Tokens.SigningCredentials(signingKey,
                Microsoft.IdentityModel.Tokens.SecurityAlgorithms.HmacSha256Signature);


            var claimsIdentity = new ClaimsIdentity(new List<Claim>()
            {
                new Claim("iss", "smthing"),
                new Claim("sub", "smthing"),
                new Claim("iat", ToUnixTime(issued).ToString()),
                new Claim("exp",ToUnixTime(expire).ToString()),
                new Claim("aud", JsonConvert.SerializeObject(new[] { "ohlc" }).ToString())
            });

 claimsIdentity.TryRemoveClaim(claimsIdentity.FindFirst("nbf"));


            var securityTokenDescriptor = new Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor()
            {
                Subject = claimsIdentity,
                SigningCredentials = signingCredentials,
            };


            securityTokenDescriptor.NotBefore = null;

            var tokenHandler = new JwtSecurityTokenHandler();
            var plainToken = tokenHandler.CreateToken(securityTokenDescriptor);
            var signedAndEncodedToken = tokenHandler.WriteToken(plainToken);

我尝试在形成 claimIdentity 后删除 nbf,但它似乎没有添加到那里。

【问题讨论】:

    标签: c# json.net jwt


    【解决方案1】:

    试试这个:

    tokenHandler.SetDefaultTimesOnTokenCreation = false
    

    参考:System.IdentityModel.Tokens.Jwt

    【讨论】:

    • 这对我有帮助。我之前收到了IDX12401: Expires: 'System.DateTime' must be after NotBefore: 'System.DateTime'.,但是将 SetDefaultTimesOnTokenCreation 设置为 false,一切都很好。我想省略"nbf" 的主要原因是,有时在测试中,我们在令牌生成和验证中都覆盖了时间。
    猜你喜欢
    • 2021-12-08
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多