首页 / 问答 / ASP.NET Core/.NET 6 Web API应用程序开发中如何自定义JWT认证的未授权(Unauthorized 401)的响应体内容呢?

ASP.NET Core/.NET 6 Web API应用程序开发中如何自定义JWT认证的未授权(Unauthorized 401)的响应体内容呢?

C# .NET Core ASP.NET Core .NET 6 2.15K 次浏览
0

在如今前/后端分离的主流开发模式中,基于JWT是最常用的身份认证及授权机制,在ASP.NET Core&.NET 6中,也提供了JWT的NuGet程序包。开发者可以非常快捷地实现基于JWT身份认证及授权。

但如果使用默认的[Authorize]特性进行授权验证,则在未授权的响应体中不会包含任何内容,它只会返回401的响应状态码,这对前端来说不是特别友好。

那么,有没有什么方法可以在ASP.NET Core/.NET 6 Web API应用程序开发中,实现自定义JWT认证的未授权(Unauthorized 401)的响应体内容呢?

回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    如果在基于.NET 6的Minimal API应用程序中,要将响应体以JSON方式返回,则可使用如下方式:

    Program.cs

    ErrorDetails.cs

    Rector的个人主页

    Rector

    2022-02-05 回答

    • 0

      在ASP.NET Core/.NET 6的应用程序中,使用JWT Bearer方式的身份验证的话,可以重写JwtBearerEvents.OnChallenge,以达到自定义Unauthorized响应体内容的目的,示例代码如下:

      Rector的个人主页

      Rector

      2022-02-05 回答

      • 0

        还可以使用OnAuthenticationFailed回调,示例代码如下:

        Rector的个人主页

        Rector

        2022-02-05 回答

        我来回答