您可以在令牌端点处将自定义代码作为令牌颁发管道的一部分运行。这允许例如
- 添加额外的验证逻辑
- 动态地改变某些参数(例如令牌生存期)
为此,实现(并注册)ICustomTokenRequestValidator
接口:
/// <summary>
/// Allows inserting custom validation logic into token requests
/// </summary>
public interface ICustomTokenRequestValidator
{
/// <summary>
/// Custom validation logic for a token request.
/// </summary>
/// <param name="context">The context.</param>
/// <returns>
/// The validation result
/// </returns>
Task ValidateAsync(CustomTokenRequestValidationContext context);
}
上下文对象使您可以访问:
- 添加自定义响应参数
- 返回错误和错误说明
- 修改请求参数,例如访问令牌生存期和类型,客户端声明和确认方法
您可以使用配置构建器上的AddCustomTokenRequestValidator
扩展方法注册验证程序的实现。