我有一个.NET 6 API,它使用AddJwtBearer
从调用方接受JWT访问令牌。该API能够成功接受/解析访问令牌,但我需要从OpenID Connect授权服务器获取其他用户信息。是否没有内置的方法使用现有的访问令牌在.NET 6中实现这一点?由于策略原因,我无法将其他信息直接包含在访问令牌中。
我已经找过了,但到目前为止什么也没找到。
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, jwt =>
{
jwt.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
....
;
});
1条答案
按热度按时间bnl4lu3b1#
JwtBearer提供了各种各样的地方,你可以在那里添加你自己的事件处理,下面的图片我做了概述什么是可用的:
在代码中,可以按如下方式访问这些事件处理程序:
在您的情况下,可以使用TokenValidated事件请求其他用户信息。
如果您需要对JwtBearer进行故障排除,那么我在这里有一篇关于它的博客文章https://nestenius.se/2023/02/21/troubleshooting-jwtbearer-authentication-problems-in-asp-net-core/