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()
});
刷新令牌请求,没有错误完成。但是,当我使用新的访问令牌时,声明价值仍然是旧的。
我的方法正确吗?或者,如何更改承载身份验证中的声明值?