.Net Core

.Net Core 接口添加 jwt 验证

2022-12-11  本文已影响0人  Rinaloving

1. 说明

2. 操作

[HttpGet]
[Authorize]
public ActionResult GetGradeList()
{
    ResponseData result = new ResponseData();
    try
    {
        result.ErrorCode = 0;
        result.Message = "操作成功";
        result.DataList = new ModelData
        {
            DataList = models
        };
        return new JsonResult(result);
    }
    catch (Exception ex)
    {
        return this.ControllerExHandler(result, "GetGradeList", ex);

    }

}
获取token 调用接口401 加入token请求

Startup.cs 文件

app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
                 {
                     endpoints.MapControllers();
                     endpoints.MapControllerRoute(
                         name: "default",
                         pattern: "{controller=Home}/{action=Index}/{id?}");
                 });
app.UseMvc();
app.UserAuthentication(); 
app.UseMvc();

3. 错误

<pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n21" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">System.InvalidOperationException: Endpoint WebApi.Controllers.RoleController.GetGradeList (WebApi) contains authorization metadata, but a middleware was not found that supports authorization.
Configure your application startup by adding app.UseAuthorization() inside the call to Configure(..) in the application startup code. The call to app.UseAuthorization() must appear between app.UseRouting() and app.UseEndpoints(...).
 at Microsoft.AspNetCore.Routing.EndpointMiddleware.ThrowMissingAuthMiddlewareException(Endpoint endpoint)
 at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
 at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.Invoke(HttpContext context, ICorsPolicyProvider corsPolicyProvider)
 at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass4_1.<UseMiddleware>b__2(HttpContext context)
 at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)
 at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
 at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
 at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

HEADERS
=======
Cache-Control: no-cache
Connection: keep-alive
Content-Type: application/json
Accept: */*
Accept-Encoding: gzip, deflate
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJc0FkbWluIjpmYWxzZSwiVXNlck5hbWUiOiJzYSIsIkxvZ2luQ29kZSI6InNhIiwiQ3VzdENvZGUiOiJhZG1pbiIsIkNvbXBhbnlDb2RlIjoiU3lzdGVtLk9iamVjdCIsIlJvbGVDb2RlIjoiMDIiLCJSb2xlUHJpb3JpdHkiOiIwIiwiTG9naW5OYW1lIjoi57O757uf566h55CG5ZGYIiwibmJmIjoxNjcwODI4OTEyLCJleHAiOjE2NzEwMjg5MTIsImlzcyI6Imp3dElzc3VlclVwbHVzIiwiYXVkIjoiand0QXVkaWVuY2VVcGx1cyJ9.g7woaHP5gm7Hqs_TIKm6CNl_el2DFct9ZKCwamNl06Q
Host: 192.168.1.109:5003
User-Agent: PostmanRuntime/7.1.1
Postman-Token: 108206ea-ef02-44ba-880f-fbebdfedbbf4
</pre>
错误顺序
app.UseAuthentication();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
                 {
                     endpoints.MapControllers();
                     endpoints.MapControllerRoute(
                         name: "default",
                         pattern: "{controller=Home}/{action=Index}/{id?}");
                 });
app.UseMvc();
上一篇下一篇

猜你喜欢

热点阅读