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 进行统一验证的主要内容,如果未能解决你的问题,请参考以下文章
.Net 5:无法启动 Ocelot,不受支持的身份验证提供程序