使用 AddJwtBearer() 使用令牌 - 无法验证签名

我已经尝试了几天在我的 .net core 2.1 Web 服务中使用 jwt 令牌。令牌因 -SecurityTokenInvalidSignatureException: IDX10503: Signature validation failed.异常而被拒绝。


我的设置很简单:


        services

            .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)                

            .AddJwtBearer(configureOptions => { 

                configureOptions.ClaimsIssuer = "http://localhost/";

                configureOptions.TokenValidationParameters = new TokenValidationParameters

                {

                    ValidateIssuerSigningKey = true,

                    IssuerSigningKey = new SymmetricSecurityKey(Convert.FromBase64String("zeey+h0M8mvWSR9HYKlNns+....")),


                    ValidateIssuer = true,

                    ValidIssuer = "http://localhost/",


                    ValidateAudience = true,

                    ValidAudience = "efb4f12d020b434c9b531af96263b3fa",

                };

            });

将我收到的令牌放入https://jwt.io/,发现签名有效:

http://img4.mukewang.com/6190b42a0001dfb911860985.jpg

但是我的网络服务仍然拒绝确认令牌。

我究竟做错了什么?


www说
浏览 833回答 1
1回答

喵喵时光机

我终于找到了我的问题的答案:我的钥匙错了。但即使使用正确的密钥,我仍然遇到同样的错误......在构建 时SymmetricSecurityKey,我不得不使用Encoding.Unicode.GetBytes(...)而不是Encoding.ASCIIor Encoding.UTF8。我仍然遇到 jwt.io 的问题。我猜这个网站不再是验证令牌的好地方。
打开App,查看更多内容
随时随地看视频慕课网APP