実際には、コードをフォークしたり独自のハンドラを用意したりせずに、これを行う組み込みの方法があります。イベント・ハンドラが実行された後Token
プロパティがチェックされ、あなたがsourceを見てみる場合は
app.UseJwtBearerAuthentication(new JwtBearerOptions()
{
Events = new JwtBearerEvents()
{
OnMessageReceived = context =>
{
// Get the token from some other location
// This can also await, if necessary
var token = context.Request.Headers["MyAuthHeader"];
// Set the Token property on the context to pass the token back up to the middleware
context.Token = token;
return Task.FromResult(true);
}
}
});
:あなたがしなければならないのは、OnMessageReceived
イベントにいくつかのコードをフックです。 nullの場合、ハンドラはAuthorizationヘッダーのデフォルトチェックで続行されます。
ありがとうございました。私はソースをスキャンしましたが、あなたがリンクしたコード行を2つと2つにわけていませんでした。魅力のように動作します。 私はSignalR(私たちはクッキーを使用したくない)を使用しており、代わりにクエリー文字列からトークンを取得したいので、関心のある人はクエリー文字列にBearerトークンを追加する必要があります。 – Lutando
@Lutando喜んで助けてください! –