您可以在令牌端点处将自定义代码作为令牌颁发管道的一部分运行。这允许例如

  • 添加额外的验证逻辑
  • 动态地改变某些参数(例如令牌生存期)

为此,实现(并注册)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扩展方法注册验证程序的实现。

github地址