1
リフレッシュトークンを使用してクレームの値を変更したいとします。マイリフレッシュトークンプロバイダーは、このようなものです: リフレッシュトークンとベアラ認証でクレーム値を変更する方法
public class MyRefreshTokenProvider : AuthenticationTokenProvider
{
public override void Create(AuthenticationTokenCreateContext context)
{
...
var claim = context.Ticket.Identity.FindFirst(ClaimTypes.UserData);
if (claim != null)
{
context.Ticket.Identity.RemoveClaim(claim);
context.Ticket.Identity.AddClaim(new Claim(ClaimTypes.UserData, "New Value"));
}
context.SetToken(context.SerializeTicket());
}
public override void Receive(AuthenticationTokenReceiveContext context)
{
context.DeserializeTicket(context.Token);
}
}
そして、起動クラスで
:app.UseOAuthBearerTokens(new OAuthAuthorizationServerOptions
{
...
RefreshTokenProvider = new MyRefreshTokenProvider()
});
リフレッシュトークン要求はエラーなしで完了します。しかし、私が新しいアクセストークンを使用するとき、クレームの価値はまだ古いものです。
私のアプローチは正しいですか?または、ベアラ認証でクレーム値を変更するにはどうすればよいですか?