想在 .Net Core 2.0 裡接 jwt 驗證的事件,
比如拿到 token 驗證失敗的 exception,
該怎麼做呢?
建立 CustomJwtBearerEvents 類別,實作 JwtBearerEvents
public class CustomJwtBearerEvents : JwtBearerEvents
{
private static Logger _logger = LogManager.GetCurrentClassLogger();
public CustomJwtBearerEvents() : base()
{}
public override Task AuthenticationFailed
(AuthenticationFailedContext context)
{
_logger.Error(context.Exception.Message);
return this.OnAuthenticationFailed.Invoke(context);
}
public override Task TokenValidated(TokenValidatedContext context)
{
_logger.Trace("OnTokenValidated: " + context.SecurityToken);
if (something)
{
var failMsg = $"Invalid API Token : {jwtToken.RawData}";
context.Fail(failMsg);
_logger.Error(failMsg);
}
return this.OnTokenValidated.Invoke(context);
}
public override Task Challenge(JwtBearerChallengeContext context)
{
return this.OnChallenge.Invoke(context);
}
public override Task MessageReceived(MessageReceivedContext context)
{
return this.OnMessageReceived.Invoke(context);
}
}
reference: https://www.codeproject.com/Articles/1205160/ASP-NET-Core-Bearer-Authentication
沒有留言:
張貼留言