0

我认为这个问题有点微不足道,但我找不到答案:

我使用 Ocelot 作为 API 网关并使用我自己的身份验证中间件,因为我需要针对我们自己的数据库对用户进行身份验证。快乐的道路工作得很好。但是,如果用户无法进行身份验证,我只能返回 500 内部服务器错误,但我不知道如何让 ocelot 返回 401。

谁能帮我?这将是我的意思的基本意思:

var authSuccess = authenticate();
if (authSuccess)
{
    await next.Invoke();
} else
{
    // cancel and Return 401
}
4

2 回答 2

0

好的,所以我进一步研究了回购,发现了一些对我有帮助的东西:

AuthenticationMiddleware = async (context, next) =>
{
   var authSuccess = authenticate();
   if (authSuccess)
   {
       await next.Invoke();
   } else
   {
      var error = new UnauthenticatedError("Some Message");
      context.Errors.Add(error);
   }
}       
于 2019-01-29T08:16:51.150 回答
0

你可以做delow方式

await ctx.HttpContext.Response.WriteAsync("{'error':'Your message'}");
ctx.Errors.Add(new UnauthenticatedError("Your message"));
于 2020-06-04T07:40:32.393 回答