You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让OpenIddict在invalid_scope错误时重定向回客户端?

如何让OpenIddict在触发invalid_scope错误时重定向回客户端应用?

当前OpenIddict在授权端点遇到invalid_scope错误时,会直接返回以下内容并中断流程:

error:invalid_scope
error_description:The specified 'scope' is invalid.
error_uri:https://documentation.openiddict.com/errors/ID2052

根据OAuth 2.0规范:

如果资源所有者拒绝访问请求,或者请求因缺失/无效重定向URI之外的原因失败,授权服务器应通过在重定向URI的查询组件中添加相应参数来通知客户端...

我想知道是否存在我遗漏的配置选项,或者可以通过挂钩事件来覆盖当前的错误处理行为?


编辑:我找到了一个事件挂钩方案,但它会在重定向URI验证之前触发,因此存在安全风险:

options.AddEventHandler<ApplyAuthorizationResponseContext>(builder =>
{
    builder.UseInlineHandler(responseContext =>
    {
        if (responseContext.Error != null
            && responseContext.Error == "invalid_request"
            && (responseContext.Response.Error == "invalid_scope" || (responseContext?.Response?.ErrorDescription?.Contains("scope is not allowed") ?? false))
        )
        {
            responseContext.ResponseMode = "query";
            var issuer = responseContext?.BaseUri?.AbsoluteUri ?? string.Empty;
            var state = responseContext?.Request?.State ?? string.Empty;
            // 不要这么做,重定向URI可能无效
            responseContext!.RedirectUri = $"{responseContext?.Request?.RedirectUri}?state={HttpUtility.UrlEncode(state)}&iss={HttpUtility.UrlEncode(issuer)}";
        }
        return default;
    });
});

内容的提问来源于stack exchange,提问作者Steve P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:43:24