ocelot jwt 进行统一验证

Posted hallejuayahaha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ocelot jwt 进行统一验证相关的知识,希望对你有一定的参考价值。

技术图片

 

前一个帖子发了有关jwt 验证api的内容,这一次将jwt集成到ocelot网关中。

ocelot集成jwt有一个很不错的nuget包,ocelot.jwtauthorize  技术图片,但是这个包似乎支持netcore2.X

 

https://github.com/axzxs2001/Ocelot.JWTAuthorize

https://www.cnblogs.com/axzxs2001/p/9250588.html

这两个地址有详细的使用说明

 

 

1、首先,我做了三个角色,

Authorize2.2  -------  登陆

OcelotGatewayService  --------  网关

TestApi1-2.2    --------   业务api

技术图片

 

 首先来看OcelotGatewayService  

技术图片

 

 在startup中,用于jwt验证的部分。我们来看看源码

技术图片

 

 可见,其主要还是对

using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Tokens;

做了一些简单封装

技术图片

 

 JwtAuthorize这个配置是在三个角色里都要有的,且都要一样

 

2、在Authorize2._2  login 控制器中,应该做到对用户名密码的验证,成功,则添加用户对应的权限,token的过期时间,生成token。

 

3、在业务api中

技术图片

 

 

要生命该权限列表中可访问的url,然后在api头部

技术图片

 

声明通过权限名

 

例子demo

 https://gitee.com/hallejuyahaha/OcelotDemo-Dotnet2.2

 

 

 

 

 

 

以上是关于ocelot jwt 进行统一验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 OKTA 进行 Ocelot 网关身份验证

Ocelot统一权限验证

.Net 5:无法启动 Ocelot,不受支持的身份验证提供程序

在 Ocelot 中注入 AuthenticationMiddleware - 如何返回 401

Ocelot API网关的实现剖析

net core体系-API-1Ocelot-项目实战