【问题标题】:JWT configuration Encoding.UTF8JWT 配置 Encoding.UTF8
【发布时间】:2022-10-31 02:01:08
【问题描述】:

我想为我们的新 REST API 实现基于 JWT 的身份验证。但 var authSigningKey 在每个响应中都返回 null,实际上问题是 Encoding.UTF8.GetBytes(_configuration["JWT:Key"])

var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Key"]));

这是我的 Jwt 应用设置:

"JWT": {
      "Key": "DhftOS5uphK3vmCJQrexST1RsyjZBjXWRgJMFPU4",
      "ValidAudience": "http://localhost:44356",
      "ValidIssuer": "http://localhost:44356"
    }

这是我的代码:

private JwtSecurityToken GetToken(List<Claim> authClaims)
        {
            try
            {
                
                var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Key"]));

                var token = new JwtSecurityToken(
                    issuer: _configuration["JWT:ValidIssuer"],
                    audience: _configuration["JWT:ValidAudience"],
                    expires: DateTime.Now.AddHours(3),
                    claims: authClaims,
                    signingCredentials: new SigningCredentials(authSigningKey, SecurityAlgorithms.HmacSha256)
                );

                return token;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }

在每个编码中它都是空的。

【问题讨论】:

    标签: asp.net authentication jwt


    【解决方案1】:

    你有没有找到解决方案,因为我在 .net 6 中遇到了同样的问题

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 1970-01-01
      • 2012-04-02
      • 2018-10-08
      • 1970-01-01
      • 2016-07-13
      • 2012-09-07
      • 2018-01-06
      • 1970-01-01
      相关资源
      最近更新 更多