在 OWIN Web API 中向 GrantRefreshToken() 添加和检索新 post 参数的最佳方法
Best way to add and retrieve new post parameters to the GrantRefreshToken() in OWIN Web API
使用刷新令牌获取新 JWT 的默认请求参数是:
grant_type 、 refresh_token 和 client_id 。
我需要在请求新的刷新令牌时通过添加新的正文参数来控制声明身份修改。
假设参数由 grant_claims 命名,它可以包含 true 或 false 布尔值。
如何在 GrantRefreshToken() 重写方法中获取该自定义参数?
非常感谢
最后,我从这个post中找到了答案:
在 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");
}
使用刷新令牌获取新 JWT 的默认请求参数是: grant_type 、 refresh_token 和 client_id 。
我需要在请求新的刷新令牌时通过添加新的正文参数来控制声明身份修改。
假设参数由 grant_claims 命名,它可以包含 true 或 false 布尔值。
如何在 GrantRefreshToken() 重写方法中获取该自定义参数?
非常感谢
最后,我从这个post中找到了答案:
在 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");
}