Ocelot.JwtAuthorize:一个基于网关的Jwt验证包

Ocelot作为基于.net core的API网关,有一个功能是统一验证,它的作用是把没有访问权限的请求挡在API网关外面,而不是到达API网关事端的API时才去验证;之前我有一篇博文Ocelot统一权限验证,作过说明,这篇博文说明了实现代码,今天我把这个实现作了整理,封装成一个Nuget包,供大家方便调用。

Web API的验证一般是用UserName和Password请求到Token,然后每次请求需要权限的API接口是把Token带到请求的Header中,作为凭据,API服端接收到请求后就要对客户端带的Token作验证,查看Token是否正确,是否过期,如果没有问题,再对该用户作权鉴,该用户是否有权限访问本API接口;这样看来,登录获取Tokent算一块,成功登录后,每次带Token请求又分两块:一块是验证,一块是鉴权,所以在Ocelot.JwtAuthorize中一共分三块。

项目的源码位于https://github.com/axzxs2001/Ocelot.JWTAuthorize

Nuget是https://www.nuget.org/packages/Ocelot.JwtAuthorize

使用也非常简单,首先有统一的配置文件(网关项目中,API项目中,验证项目中)

640?wx_fmt=png

1、网关项目中在Startup的ConfigureService方法中注入services.AddOcelotJwtAuthorize()即可。

2、验证项目中在Startup的ConfigureService方法中注入services.AddTokenJwtAuthorize(),同时验证项目还有一个作用是分发Token,前提是用户有正确的用户名密码,所以要做一个登录的Colloer和Action来实现,注意登录时Claim中的信息是在API项目中验证权限的信息。

640?wx_fmt=png

3API项目中在StartupConfigureService方法中注入

640?wx_fmt=png

具体体安例参照https://github.com/axzxs2001/Ocelot.JWTAuthorize下的Sample


相关文章

原文地址: https://www.cnblogs.com/axzxs2001/p/9250588.html


 
 

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

Ocelot.Provider.Polly 是 Ocelot API 网关框架的一个扩展,它提供了使用 Polly 库来实现 Ocelot 网关的断路器、重试、超时等策略的功能。Polly 是一个基于 .NET 的故障处理库,可以帮助开发人员轻松地实现容错、重试、熔断等功能。 使用 Ocelot.Provider.Polly 扩展,可以在 Ocelot 中轻松地配置和使用 Polly 功能,例如: 1. 断路器:根据指定的异常类型和故障阈值,自动打开和关闭断路器。 2. 重试:根据指定的重试策略,自动重试失败的请求。 3. 超时:根据指定的超时时间,自动中断超时的请求。 以下是一个使用 Ocelot.Provider.Polly 扩展的示例: ```csharp services.AddOcelot() .AddPolly(); app.UseOcelot().Wait(); ``` 这个示例中,我们首先调用了 `AddOcelot()` 方法来注册 Ocelot,并使用 `AddPolly()` 方法来启用 Polly 功能。然后,我们在 `Startup.cs` 文件中使用 `UseOcelot()` 方法来启动 Ocelot。 在配置文件中,我们可以使用以下代码来配置 Polly 功能: ```json { "Routes": [ { "DownstreamPathTemplate": "/api/{controller}/{id}", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 5000 } ], "UpstreamPathTemplate": "/api/values/{id}", "UpstreamHttpMethod": [ "Get" ], "Polly": { "CircuitBreaker": { "AllowedBreakDurationSeconds": 30, "FailureThreshold": 0.5, "SamplingDurationSeconds": 60 }, "Timeout": { "DurationSeconds": 10 }, "Retry": { "Count": 3, "DelaySeconds": 2 } } } ] } ``` 在上面的示例中,我们在路由配置中添加了一个 `Polly` 节点,用于配置 Polly 功能。在这个节点下,我们可以指定断路器、重试、超时等策略的参数,例如故障阈值、重试次数和延迟时间等。 总的来说,Ocelot.Provider.Polly 扩展可以帮助开发人员快速实现 Ocelot 的故障处理功能,从而提高 API 网关的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值