Max*_*hen 9 oauth-2.0 asp.net-web-api2
是否可以覆盖自定义OAuthAuthorizationServerProvider上特定故障单的默认AccessTokenExpireTimeSpan?所有其他票证的默认到期时间为15分钟.
public public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
...
var ticket = new AuthenticationTicket(identity, properties);
if (condition)
{
ticket.Properties.IssuedUtc = DateTime.UtcNow;
ticket.Properties.ExpiresUtc = DateTime.UtcNow.AddDays(14);
}
context.Validated(ticket);
}
Run Code Online (Sandbox Code Playgroud)
条件== true的生成标记具有默认的到期时间(15分钟).我不想更改context.Options.AccessTokenExpireTimeSpan,因为它影响所有令牌,这不是主意.
jum*_*uro 15
您必须在TokenEndPoint方法中设置到期时间而不是GrantResourceOwnerCredentials方法:
public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
...
if (condition)
{
context.Properties.ExpiresUtc = DateTime.UtcNow.AddDays(14);
}
...
}
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.
编辑
正如迈克尔在回答类似问题时指出的那样,如果AccessTokenExpireTimeSpan每个client_id 都有不同的内容,则可以AccessTokenExpireTimeSpan在验证客户端身份验证时覆盖客户端上下文选项中配置的默认值:
public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
...
context.Options.AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(client.AccessTokenExpireTime);
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4512 次 |
| 最近记录: |