【实战 Ids4】║ 在Swagger中调试认证授权中心

回家的路上照顾好自己哟~

大家好,老张已经顺利到家啦,闲的无事写两篇文章冒个泡吧,其实写的内容都是群友提出来的问题,简单的我会在群里直接提供思路,麻烦的我就写个文章说明一下吧,也是自己的一个记录作用,今天简单说一下,如何在资源服务器中,通过Swagger来调试授权认证中心。因为之前我们都是使用的JWT Bearer认证嘛,这次统一都换成了Ids4了,所以这里也要做一下相应的处理。

1

哪几个项目已经完成了迁移      

去年6月的时候,Idp项目正式开源,那个时候我简单的学习了如何使用ids4,感觉很简单,然后豪言壮志的说,会把所有的项目都迁移过去,没想到实战起来,并没有那么简单的,导致一直搁置到了现在,还好在春节之前全部搞定了,上篇文章说的是ChristDDD项目,剩下的最后一个Nuxt项目也迁移了,所以总结来说,以下所有项目都已经完成了迁移到Ids4的工作:

相信只要你看过我的文章,应该都能知道这几个项目对应的含义,自己可以动手试一试,这一套也是我的心血了,无论是从vue,还是到netcore,无论是从api,还是到MVC,无论是从SPA静态渲染,还是到SSR渲染,终于告一段落,如果你所在的公司或者企业要使用,或者基于我的这一套六个项目整改的话,可以找我售后一下,就比如这位老铁:

(考虑隐私,暂不提供知情人信息)

既然说到了 api 项目,那就是剩下最后一个问题了,如何在Swagger中联调,因为之前我都是直接打开了vue项目,又打开了BlogCore和Idp项目,麻烦!接下来咱们就简单的说说,如何配置Swagger,接入IdentityServer4。

2

Swagger中接入Ids4配置   

注意,这是NetCore3.1的写法:

 // Jwt Bearer 认证,必须是 oauth2,这里注释掉//c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme//{//    Description = "JWT授权(数据将在请求头中进行传输) 直接在下框中输入Bearer {token}(注意两者之间是一个空格)\"",//    Name = "Authorization",//jwt默认的参数名称//    In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中)//    Type = SecuritySchemeType.ApiKey//});// 接入identityserver4c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme{Type = SecuritySchemeType.OAuth2,Flows = new OpenApiOAuthFlows{// 因为是 api 项目,那肯定是前后端分离的,所以用的是Implicit模式Implicit = new OpenApiOAuthFlow{// 这里配置 identityServer 项目的域名AuthorizationUrl = new Uri($"https:ids.neters.club/connect/authorize"),// 这里配置是 scope 作用域,// 只需要填写 api资源 的id即可,// 不需要把 身份资源 的内容写上,比如openid Scopes = new Dictionary<string, string> {{"blog.core.api","ApiResource id"}}}}});

这里我们配置好以后,运行项目,就可以看到效果了:

可以看到,采用的是OAuth2.0协议,implicit授权模式,

client_id,是我们的客户端id,要和ids4配置的匹配,下文会说到。

地址是ids.neters.club,Scopes 是我们定义的 blog.core.api,

这两个都要和认证服务匹配,具体是哪里呢,就是我们开启认证服务的地方:

我这里把授权地址URL,给写到了配置文件里,因为有时候我们的ids4项目可能会变化,

其实这里我们的apiName也可以配置到appsettings.json文件夹中。

注意,scope不需要填写其他的,不然会报错,只需要把 client_id 写上即可:

接下来,我们就需要配置Ids4项目了。

 3

 Ids4项目配置回调地址 

这里其实就很简单的,如果我们不对回调地址做相应的增加的话,会提示无效的错误:

这里就很简单了:

// blog.admin 前端vue项目
new Client {ClientId = "blogadminjs",ClientName = "Blog.Admin JavaScript Client",AllowedGrantTypes = GrantTypes.Implicit,AllowAccessTokensViaBrowser = true,// 回调地址uri集合,可以写多个RedirectUris ={"http://vueadmin.neters.club/callback","http://apk.neters.club/oauth2-redirect.html",        "http://localhost:8081/oauth2-redirect.html",},PostLogoutRedirectUris = { "http://vueadmin.neters.club" },AllowedCorsOrigins =     { "http://vueadmin.neters.club" },AllowedScopes = {IdentityServerConstants.StandardScopes.OpenId,IdentityServerConstants.StandardScopes.Profile,"roles",// 上边的这三个 scope ,可以不用配置到swagger中"blog.core.api"// 这个资源api的name,要一致}
},

这里我要强调一点,不是说每次我们都要修改这个Config.cs这个类,这是初始化的,我一般都是直接修改的数据表数据就行,常见的三个配置表就是:

到了这里,我们一般就是修改完成了,可以测试一下,来个动图:

是不是很简单!不用再打开前端vue来测试了,是不是很方便。

IdentityServer4 项目还是挺好的,无论是企业里,还是个人使用,都是比较好的方案,除非你所在公司有一套自己的项目。

打完收工,下一篇,我们就简单来说说,如何做单点登录了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 集群 java,Linux Tomcat 集群 利用记实1--搭建javaWeb运行情况

前段时候一向在搞linux&#xff0c;有很多多少工具只曩昔没有做过。影象不是那么深刻&#xff0c;此刻把历程记实下来&#xff0c;以备今后盘问。一&#xff1a;起首说一下我们的计划&#xff0c; 一共有六台办事器&#xff0c;此中两台安置Oracle 10g做数据库集群(这个不在这篇…

蓝桥杯2016初赛-网友年龄-枚举

题目描述 某君新认识一网友。 当问及年龄时&#xff0c;他的网友说&#xff1a;“我的年龄是个2位数&#xff0c;我比儿子大27岁,如果把我的年龄的两位数字交换位置&#xff0c;刚好就是我儿子的年龄” 请你计算&#xff1a;网友的年龄一共有多少种可能情况&#xff1f; 输出…

linux下yum安装pgsql,CentOS7使用yum安装PostgreSQL和PostGIS的方法

1.更新yum源CentOS7默认yum源的PostgreSQL版本过低&#xff0c;不适合在本版本上使用。在https://yum.postgresql.org/repopackages.php上找到适合CentOS7的RPM源&#xff0c;复制其url地址&#xff0c;使用yum安装。同时安装epel(Extra Packages for Enterprise Linux 7)&…

在 Blazor WebAssembly 中使用 gRPC-Web

对于单页面应用程序&#xff0c;gRPC-Web 是 JSON-over-HTTP 的一种方便、高性能的替代方案。如果你已经了解关于 gRPC 和 gRPC-Web 的一切&#xff0c;你可以跳到 添加 gRPC 服务到一个Blazor WebAssembly 应用程序 一节。如果你只是想要一些简单的 Blazor WebAssembly gRPC-…

蓝桥杯2016初赛-生日蜡烛-枚举

题目描述 某君从某年开始每年都举办一次生日party&#xff0c;并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来&#xff0c;他一共吹熄了236根蜡烛。 请问&#xff0c;他从多少岁开始过生日party的&#xff1f; 输出 请填写他开始过生日party的年龄数。 代码如下&#…

【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发...

《ASP.NET Core 微服务实战》译者序&#xff1a;https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-translator/“微服务”的概念在 2014 年正式提出之后&#xff0c;越来越多的团队开始用它来设计自己的业务系统&#xff0c;各种微服务框架和开发过程管理…

蓝桥杯2016初赛-有奖猜谜-模拟

题目描述 小明很喜欢猜谜语。最近&#xff0c;他被邀请参加了X星球的猜谜活动。 每位选手开始的时候都被发给777个电子币。 规则是&#xff1a;猜对了&#xff0c;手里的电子币数目翻倍&#xff0c;猜错了&#xff0c;扣除555个电子币, 扣完为止。 小明一共猜了15条谜语。战果…

linux6.5dns装什么,CentOS6.5安装DNS服务

1&#xff0c;安装软件包yum install -y bind2&#xff0c;备份配置文件cp /etc/named.conf /etc/named.conf_bak3&#xff0c;编辑配置文件vim /etc/named.conf//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a c…

【在路上2】快递的运单轨迹

通达系早期的扫描数据高度类同&#xff0c;业务员从商家或散客收件之后&#xff0c;PDA做一次揽收操作。业务员或承包区把快件送到网点&#xff0c;晚上由网点派车统一送到转运中心&#xff0c;此时网点做一次发件扫描&#xff0c;转运中心做一次到件扫描。转运中心分拣后发出&…

蓝桥杯2017初赛-正则问题

题目描述 考虑一种简单的正则表达式&#xff1a;只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是&#xff1a; xxxxxx&#xff0c;长度是6 输入 输入一个由x()|组成的正则表达式。输入…

linux apache找不到woff2,使服务器Nginx(或者Apache)支持woff2等字体文件

为了在前端正确地显示字体&#xff0c;浏览器必须使用正确的http header来接受字体文件。如果服务器没有设置要求的头信息&#xff0c;那么有些浏览器就会在控制台报错或者直接不能显示。可能你的服务器已经配置好了&#xff0c;你无须再动任何东西。如果没有配置好&#xff0c…

.NET Core验证ASP.NET密码

.NET Core验证ASP.NET密码随着 .NETCore的持续更新和完善&#xff0c;越来越多的机构已经选择或者升级为 .NETCore。但由于技术不完全相同&#xff0c;不可能所有应用/数据库都能无缝迁移&#xff0c;因此 ASP.NETCore和传统 ASP.NET之间多少会存在一些挑战&#xff0c;需要更多…

蓝桥杯2017初赛-9数算式-dfs

题目描述 观察如下的算式&#xff1a;9213 x 85674 789314562 左边的乘数和被乘数正好用到了1~9的所有数字&#xff0c;每个1次。 而乘积恰好也是用到了1~9的所有数字&#xff0c;并且每个1次。 请你借助计算机的强大计算能力&#xff0c;找出满足如上要求的9数算式一共有多少…

linux下I2C驱动发送IO时序,I2C驱动情景分析——怎样控制I2C时序

内核版本&#xff1a;linux-3.4.2源程序&#xff1a; linux-3.4.2\drivers\i2c\busses\I2c-s3c2410.c这次要解决的问题是&#xff1a;如何配置soc的I2C模块&#xff0c;输出想要的时序波形&#xff1f;关于Linux里I2C驱动的架构&#xff0c;在转载的文章讲得相当透彻(《linu…

蓝桥杯2017初赛-分巧克力-二分

题目描述 **儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力&#xff0c;其中第i块是Hi x Wi的方格组成的长方形。 为了公平起见&#xff0c;小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足&#…

蓝桥杯2017初赛-外星日历-数论

题目描述 某星系深处发现了文明遗迹。他们的计数也是用十进制。 他们的文明也有日历。日历只有天数&#xff0c;没有年、月的概念。 有趣的是&#xff0c;他们也使用了类似“星期”的概念&#xff0c;只不过他们的一个星期包含了9天&#xff0c;为了方便&#xff0c;这里分别记…

ubuntu14.04安装linux公社,Ubuntu 14.04下安装IT++

Ubuntu 14.04 下安装 IT(itpp)(官方二进制包安装版)温馨提示&#xff1a;虽然没有尝试&#xff0c;不过直接运行最后一步应该也可以成功。另外&#xff0c;既然有简单的方法&#xff0c;不到破不得以还是不要尝试麻烦的方法了。1、安装 FFTW3sudo apt-get install libfftw3-dev…

.NET CORE(C#) WPF 值得推荐的动画菜单设计

微信公众号&#xff1a;Dotnet9&#xff0c;网站&#xff1a;Dotnet9&#xff0c;问题或建议&#xff1a;请网站留言&#xff0c; 如果对您有所帮助&#xff1a;欢迎赞赏。.NET CORE(C#) WPF 值得推荐的动画菜单设计阅读导航本文背景代码实现本文参考源码1. 本文背景YouTube上老…

蓝桥杯2017初赛-k倍区间-前缀和

题目描述 给定一个长度为N的数列&#xff0c;A1, A2, … AN。 如果其中一段连续的子序列Ai, Ai1, … Aj(i < j)之和是K的倍数&#xff0c;我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗&#xff1f; 输入 第一行包含两个整数N和K。(1 < N, K …

【在路上3】大数据离线分析快递的派件时效

【在路上1】快递物流大数据的由来【在路上2】快递的运单轨迹几乎人人都用过快递&#xff0c;如果说用户最在意什么&#xff1f;那必然是谁家送得快&#xff01;这也是整个快递物流行业被诟病最多的地方。都知道顺丰送得快&#xff0c;但价格摆在那里&#xff0c;且它的市场份额…