自定义流程 - 委派

Custom flow - delegation

我想知道是否可以使用 openiddict 来实现一种类似于 here 使用 Identity Server 实现的委托授权类型。

var result = await _validator.ValidateAccessTokenAsync(userToken);
if (result.IsError)
{
    context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant);
    return;
}

是否有任何与 openiddict 中的 ValidateAccessTokenAsync 等效的方法来验证令牌并访问其某些属性?

标准令牌交换的实施由 https://github.com/openiddict/openiddict-core/issues/1249 跟踪。

同时,您可以覆盖默认的 ValidateTokenParameter 处理程序以使用您的自定义授权并从您使用的客户参数中提取访问令牌:

https://github.com/openiddict/openiddict-core/blob/422d8979adb8cdebc6c8c8e14faa1d736208271e/src/OpenIddict.Server/OpenIddictServerHandlers.cs#L168

然后,您可以使用ProcessAuthenticationContext的实例调用IOpenIddictServerDispatcher.DispatchAsync()方法来触发认证事件。如果 IsRejectedtrue,这意味着令牌无效。否则,您将能够访问其声明主体。