ASP.NET Core 5 với ASP.NET Identity 3.0, tôi đang sử dụng cả trang web và apis. Tôi đang sử dụng OpenIddict để phát hành mã thông báo JWT và để xác thực. Mã của tôi trông giống như vậy:Ủy quyền qua mã thông báo JWT
X509Certificate2 c = new X509Certificate2(@"tokensign.p12", "MyCertificatePassword");
services.AddOpenIddict<WebUser, IdentityRole<int>, WebDbContext, int>()
.EnableTokenEndpoint("/api/customauth/login")
.AllowPasswordFlow()
.UseJsonWebTokens()
.AddSigningCertificate(c);
Nếu tôi tắt UseJsonWebTokens(), tôi có thể tạo mã thông báo và ủy quyền thành công. Tuy nhiên, tôi không chắc chắn rằng chứng chỉ của tôi đang xác thực mã thông báo trả lại.
Và khi bật UseJsonWebTokens, tôi có thể phát hành mã thông báo JWT ở điểm cuối này. Tuy nhiên, tôi không thể xác thực bất kỳ yêu cầu nào!
Tôi đang sử dụng đoạn mã sau trong cấu hình ứng dụng:
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();
- Làm thế nào tôi có thể thực thi các yêu cầu để được xác nhận với giấy chứng nhận của tôi để chắc chắn rằng các dấu hiệu JWT không bị sửa đổi.
- Cài đặt chính xác sẽ cho phép xác thực và ủy quyền mã thông báo JWT của tôi là gì, nếu tôi không sử dụng JWT, tôi sẽ được ủy quyền thành công.
Vui lòng không đặt thẻ vào tiêu đề câu hỏi! http://stackoverflow.com/help/tagging – Tseng