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

 

猜你喜欢

转载自www.cnblogs.com/hallejuayahaha/p/12029344.html