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

大家好,老张已经顺利到家啦,闲的无事写两篇文章冒个泡吧,其实写的内容都是群友提出来的问题,简单的我会在群里直接提供思路,麻烦的我就写个文章说明一下吧,也是自己的一个记录作用,今天简单说一下,如何在资源服务器中,通过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 项目还是挺好的,无论是企业里,还是个人使用,都是比较好的方案,除非你所在公司有一套自己的项目。

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

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

  1. 在AngularJS应用中实现认证授权

    在AngularJS应用中实现认证授权 在每一个严肃的应用中,认证和授权都是非常重要的一个部分.单页应用也不例外.应用并不会将所有的数据和功能都 暴露给所有的用户.用户需要通过认证和授权来查看应用的某 ...

  2. spring Cloud微服务 security+oauth2认证授权中心自定义令牌增强,并实现登录和退出

    文章目录 认证授权中心自定义令牌增强 自定义认证端点返回结果 登录逻辑调整,增强令牌返回参数 测试验证 用户微服务构建 配置类构建 相关实体类 登录 退出登录 在之前的博客我写了 SpringClou ...

  3. SaaS-HRM中的认证授权

    搭建环境 导入依赖 父工程导入Shiro的依赖 <!--shiro和spring整合--><dependency><groupId>org.apache.shiro ...

  4. SpringCloud 基于OAth2.0 搭建认证授权中心_02

    文章目录 一.数据库部分 1. 创建数据库 2. 初始化数据脚本 二.搭建maven父工程认证授权模块 2.1. 创建一个maven项目 2.2. 引入依赖 三.搭建认证授权模块 3.1. 创建一个子 ...

  5. Spring Security中关于认证授权的配置

    以下为Spring Security在配置文件中配置系统使用内存中用户.密码.授权信息 <security:authentication-manager><security:auth ...

  6. 基于.NetCore3.1搭建项目系列 —— 认证授权方案之Swagger加锁

    1 开始 在之前的使用Swagger做Api文档中,我们已经使用Swagger进行开发接口文档,以及更加方便的使用.这一转换,让更多的接口可以以通俗易懂的方式展现给开发人员.而在后续的内容中,为了对a ...

  7. 【实战 Ids4】║ 客户端、服务端、授权中心全线打通!

    1.经过元旦两天的全力整改,终于在这新的一年,完成了我的布道生涯的第一个大步走 -- 那就是客户端(VUE).服务端(ASP.NET Core API).授权中心(IdentityServer4)的大 ...

  8. 【实战 Ids4】║ 又一个项目迁移完成(MVC)

    迎周一,腊月十九,小年倒计时 新年还有两周时间就要到了,学习可不能停,这几天一直在加班调休,周末也如此,不过也是趁着半夜凌晨的时间,继续迁移我的项目到IdentityServer4统一认证授权中心Bl ...

  9. SpringCloud整合spring security+ oauth2+Redis实现认证授权

    文章目录 设置通用父工程依赖 构建eureka注册中心 构建认证授权服务 配置文件设置 Security配置类 授权服务配置类 登录实现 测试验证 设置通用父工程依赖 在微服务构建中,我们一般用一个父 ...

最新文章

  1. python制作酷炫动画_厉害了!Python+matplotlib制作8个排序算法的动画
  2. JDK的动态代理深入解析(Proxy,InvocationHandler)(转)
  3. node windows更新_node.js 01 简介 - 产生,发展历程,优势,适用场景,实际应用
  4. 微信公众号 模版消息 跳转到小程序报错{ errcode: 40013, errmsg: 'invalid appid hint: [cC6RwA09011295]' }
  5. ubuntu上安装python3.7教程_ubuntu中安装Python3.7
  6. Tesseract试用过程及结果分析
  7. 手把手图文教你从Eclipse项目迁移Android Studio
  8. 《OpenGL超级宝典第五版》Windows + VS2019配置
  9. 网站建设需遵循的六个步骤
  10. Javascrpt测试
  11. laravel框架中Cache缓存类中的原子锁
  12. 王森版c语言课后题答案,《C语言编程基础第2版》王森-上机解答.doc
  13. 大数据揭秘哪个省是高考地狱?结论和想象不太一样
  14. rtx2060什么水平_新一代主流游戏显卡RTX2060来了,它的性能究竟如何?
  15. JAVA判断是否是水仙花数
  16. 秉火429笔记之十二 看门狗
  17. 财路网每日原创推送:混迹币圈必看,吐血推荐!
  18. 《象与骑象人听书笔记》
  19. 图解固件、驱动、软件的区别
  20. 安卓小项目之EveryDay(6)----使用第三方平台获取短信验证码

热门文章

  1. Gruntjs: grunt-contrib-jst
  2. 【原创】mysql数据库异常:data truncate for column “*” at row *;data too long *。原因,及解决。...
  3. 迁移聊天记录到Teams
  4. 酷安应用市场php源码,酷安应用市场 v11.0.3-999 去广告极限精简版
  5. 如何使用CPU来加速你的Linux命令
  6. Redhat 5.1 install PHP 5.3.6
  7. ARM立即数讲解--LDR和MOV的区别 .
  8. mac中的放置java类库扩展的位置
  9. 聚类算法学习指南(二)
  10. C#得到CPU的序列号、硬盘序列号、网卡序列号