2016-08-26 41 views
3

以前は、JwtBearerAuthenticationOptionsを使用して、独自の検証でカスタムトークンハンドラを追加できました。今ではコアUseJwtBearerAuthenticationJwtBearerOptionsを使用する必要があります。これには、JwtSecurityTokenHandlerを上書きするオプションはありません。私は基本的にJwtSecurityTokenHandlerに次のメソッドをオーバーライドしたい:ASP.NETコアのJWTトークンにカスタム検証を追加しますか?

以前
protected virtual JwtSecurityToken ValidateSignature(string token, TokenValidationParameters validationParameters) 

:ASP.NETコアと現在

app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions 
{ 
    TokenHandler = new MyTokenHandler() 
    // other properties here 
}); 

app.UseJwtBearerAuthentication(new JwtBearerOptions 
{ 
    // other properties here 
}); 

答えて

4

、あなたはSecurityTokenValidatorsプロパティを使用することができますトークンを解析して、認証するための呼び出しを成功させることができます。ただし、JwtSecurityTokenHandlerを削除することは、あなたのケースで成功しない場合は理にかなっているようです。

0

JwtBearerOptionsTokenValidationParametersという名前のパラメータを持っているので、あなたこのパラメータを使用できます:

var tokenValidationParameters = new TokenValidationParameters 
{ 
    ValidateIssuerSigningKey = true, 
    IssuerSigningKey = signingKey, 
    //... 
}; 

app.UseJwtBearerAuthentication(new JwtBearerOptions 
{ 
    //... 
    TokenValidationParameters = tokenValidationParameters 
}); 
限り、トークンハンドラの一つとして - 技術的 Clear()への呼び出しは必要ありません

var options new JwtBearerOptions(); 
options.SecurityTokenValidators.Clear(); 
options.SecurityTokenValidators.Add(new MyTokenHandler()); 
app.UseJwtBearerAuthentication(options); 

:あなたが実際にあなた自身のJwtSecurityTokenHandlerを作成し、ValidateSignatureメソッドをオーバーライドしたい場合

+0

私はTokenValidationParametersを見ましたが、独自のトークン検証を行う方法を理解できませんでした。特に、私は署名を検証したいと思うし、TokenValidationParametersでそれを行う方法を理解できません。 – Jeremy

+0

エラーが発生しましたか?トークン検証ロジックが何もない場合は、それを投稿できますか? –

+0

エラーは表示されません。 JwtBearerAuthenticationOptionsにあるように、JwtBearerOptionsにはTokenHandlerプロパティがありません。 – Jeremy

関連する問題