使用刷新令牌获取新JWT的默认请求参数为:grant_type、refresh_token和client_id。
当请求新的刷新令牌时,我需要通过添加新的主体参数来控制声明标识修改。
假设参数由grant_claims命名,它可以包含true或false布尔值。
如何在GrantRefreshToken((重写的方法中获取该自定义参数?
非常感谢
最后,我从这篇文章中找到了答案:
owin-oauth发送附加参数
在ValidateClientAuthentication
中,我们可以添加额外的参数
public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
// other code ...
var grantClaims = context.Parameters.Get("grant_claims");
// other code ...
context.OwinContext.Set<string>("grant_claims", grantClaims);
// other code ...
}
然后获取身份验证和刷新令牌方法中的值
// auth
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var grantClaims = context.OwinContext.Get<string>("grant_claims");
}
//refresh token
public override async Task GrantRefreshToken(OAuthGrantRefreshTokenContext context)
{
var grantClaims = context.OwinContext.Get<string>("grant_claims");
}