带有ASP.NET Identity 3.0的ASP.NET Core 5,我正在使用网页和apis。我正在使用OpenIddict发布JWT令牌并进行身份验证。我的代码如下这样:通过JWT令牌授权
X509Certificate2 c = new X509Certificate2(@"tokensign.p12", "MyCertificatePassword");
services.AddOpenIddict<WebUser, IdentityRole<int>, WebDbContext, int>()
.EnableTokenEndpoint("/api/customauth/login")
.AllowPasswordFlow()
.UseJsonWebTokens()
.AddSigningCertificate(c);
如果我禁用UseJsonWebTokens(),我可以生成一个令牌和成功授权。但是,我不确定我的证书是否验证返回的令牌。
当启用UseJsonWebTokens时,我可以在此端点发出JWT令牌。但是,我无法验证任何请求!
我使用下面的代码在应用程序配置:
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
RequireHttpsMetadata = false,
Authority = "http://localhost:60000/",
Audience = "http://localhost:60000/",
});
app.UseOAuthValidation();
app.UseIdentity();
app.UseOpenIddict();
app.UseMvcWithDefaultRoute();
- 我怎么能强制执行请求与我的证书,以确保JWT令牌不被篡改验证。
- 什么是正确的设置,将允许我的JWT令牌的验证和授权,假设如果我没有使用JWT,我正在成功授权。
请不要将标签置于问题标题! http://stackoverflow.com/help/tagging – Tseng