我们要创建一个安全的API,因此我们正在使用IdentityServer验证客户端。
这是我们设置身份验证的代码的快照
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority =
Configuration.GetSection("Identity:Uri").Value;
options.JwtBearerEvents.OnMessageReceived= context =>
{
Console.WriteLine("Start log time");
return Task.CompletedTask;
};
options.JwtBearerEvents.OnTokenValidated = context =>
{
Console.WriteLine("End log time");
return Task.CompletedTask;
};
options.CacheDuration = TimeSpan.FromSeconds(0);
});
授权工作正常,没有问题。
我的问题:
我想捕获身份服务器花费了多少时间来验证承载令牌。
如您所见,我在JwtBearerEvents.OnMessageReceived
和JwtBearerEvents.OnTokenValidated
中添加了回调。
我当时想放秒表,启动计时器OnChallenge函数,然后在OnTokenValidated函数中停止它。
但是当我尝试运行此代码时,代码从未命中JwtBearerEvents.OnMessageReceived
。