承認属性の下のメソッドにアクセスしようとしたときに、ログに書き込もうとしています。基本的に、無効なトークンや期限切れのトークンを使用した場合はログに記録したいと思います。JWTの基本認証を使用しています
services.AddAuthentication(o =>
{
o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(cfg =>
{
cfg.RequireHttpsMetadata = false;
cfg.SaveToken = true;
cfg.TokenValidationParameters = new TokenValidationParameters()
{
ValidAudience = jwtAudience,
ValidIssuer = jwtIssuer,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSecurityKey))
};
});
承認の試行が有効であったかどうか、およびなぜ有効でなかったのかをログに記録するコードを承認チェックに追加する方法はありますか?
JwtBearerEventsオブジェクトにアクセスできます。このオブジェクトは、ベアラートークンが処理されるときに発生するイベントの数を定義します。
OnAuthenticationFailed
リクエストの処理中に例外がスローされた場合に呼び出されます。抑制されない限り、例外はこのイベントの後に再スローされます。
OnChallengeチャレンジが発信者に返送される前に呼び出されます。
OnMessageReceived
プロトコルメッセージが最初に受信されたときに呼び出されます。
OnTokenValidated
セキュリティトークンが検証に合格し、ClaimsIdentityが生成された後に呼び出されます。
AddJwtBearerで構成を初期化するときに、サブスクライブするイベントを追加します。
.AddJwtBearer(o =>
{
o.Events = new JwtBearerEvents()
{
OnAuthenticationFailed = c =>
{
// do some logging or whatever...
}
};
});
ソースを見て、いつイベントが発生する可能性があるかを確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加