在 ocelot 身份验证之前,我必须对请求的 jwt 进行一些检查,因此我在预认证中间件 https://ocelot.readthedocs.io/en/latest/features/middlewareinjection.html像这样:
var config = new OcelotPipelineConfiguration
{
PreAuthenticationMiddleware = async (ctx, next) =>
{
var jwt = ctx.HttpContext.Request.Headers["Authorization"];
if (jwtIsOk(jwt)) next.Invoke();
// else ...
}
};
app.UseOcelot(config).Wait();
而不是不调用next
,是否可以返回自定义响应?
我想返回 401 错误
我认为这就是您正在寻找的:
var configuration = new OcelotPipelineConfiguration
{
PreAuthenticationMiddleware = async (ctx, next) =>
{
if (xxxxxx)
{
ctx.Errors.Add(new UnauthenticatedError("Your message"));
return;
}
await next.Invoke();
}
};
在本例中,我使用的是 UnauthenticatedError(Ocelot 的类),它将以 401 结尾。还有更多类似的情况。您还可以创建自己的继承自 Ocelot.Errors.Error 的错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)