【实战 Ids4】║ 在Swagger中调试认证授权中心
回家的路上照顧好自己?jiǎn)褈
大家好,老張已經(jīng)順利到家啦,閑的無事寫兩篇文章冒個(gè)泡吧,其實(shí)寫的內(nèi)容都是群友提出來的問題,簡(jiǎn)單的我會(huì)在群里直接提供思路,麻煩的我就寫個(gè)文章說明一下吧,也是自己的一個(gè)記錄作用,今天簡(jiǎn)單說一下,如何在資源服務(wù)器中,通過Swagger來調(diào)試授權(quán)認(rèn)證中心。因?yàn)橹拔覀兌际鞘褂玫腏WT Bearer認(rèn)證嘛,這次統(tǒng)一都換成了Ids4了,所以這里也要做一下相應(yīng)的處理。
1
哪幾個(gè)項(xiàng)目已經(jīng)完成了遷移? ????
去年6月的時(shí)候,Idp項(xiàng)目正式開源,那個(gè)時(shí)候我簡(jiǎn)單的學(xué)習(xí)了如何使用ids4,感覺很簡(jiǎn)單,然后豪言壯志的說,會(huì)把所有的項(xiàng)目都遷移過去,沒想到實(shí)戰(zhàn)起來,并沒有那么簡(jiǎn)單的,導(dǎo)致一直擱置到了現(xiàn)在,還好在春節(jié)之前全部搞定了,上篇文章說的是ChristDDD項(xiàng)目,剩下的最后一個(gè)Nuxt項(xiàng)目也遷移了,所以總結(jié)來說,以下所有項(xiàng)目都已經(jīng)完成了遷移到Ids4的工作:
相信只要你看過我的文章,應(yīng)該都能知道這幾個(gè)項(xiàng)目對(duì)應(yīng)的含義,自己可以動(dòng)手試一試,這一套也是我的心血了,無論是從vue,還是到netcore,無論是從api,還是到MVC,無論是從SPA靜態(tài)渲染,還是到SSR渲染,終于告一段落,如果你所在的公司或者企業(yè)要使用,或者基于我的這一套六個(gè)項(xiàng)目整改的話,可以找我售后一下,就比如這位老鐵:
(考慮隱私,暫不提供知情人信息)
既然說到了 api 項(xiàng)目,那就是剩下最后一個(gè)問題了,如何在Swagger中聯(lián)調(diào),因?yàn)橹拔叶际侵苯哟蜷_了vue項(xiàng)目,又打開了BlogCore和Idp項(xiàng)目,麻煩!接下來咱們就簡(jiǎn)單的說說,如何配置Swagger,接入IdentityServer4。
2
Swagger中接入Ids4配置? ?
注意,這是NetCore3.1的寫法:
// Jwt Bearer 認(rèn)證,必須是 oauth2,這里注釋掉//c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme//{// Description = "JWT授權(quán)(數(shù)據(jù)將在請(qǐng)求頭中進(jìn)行傳輸) 直接在下框中輸入Bearer {token}(注意兩者之間是一個(gè)空格)\"",// Name = "Authorization",//jwt默認(rèn)的參數(shù)名稱// In = ParameterLocation.Header,//jwt默認(rèn)存放Authorization信息的位置(請(qǐng)求頭中)// Type = SecuritySchemeType.ApiKey//});//?接入identityserver4c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme{Type = SecuritySchemeType.OAuth2,Flows = new OpenApiOAuthFlows{//?因?yàn)槭?api?項(xiàng)目,那肯定是前后端分離的,所以用的是Implicit模式Implicit = new OpenApiOAuthFlow{//?這里配置?identityServer?項(xiàng)目的域名AuthorizationUrl?=?new?Uri($"https:ids.neters.club/connect/authorize"),//?這里配置是?scope?作用域,//?只需要填寫 api資源 的id即可,//?不需要把 身份資源 的內(nèi)容寫上,比如openid?Scopes?=?new?Dictionary<string,?string>?{{"blog.core.api","ApiResource id"}}}}});這里我們配置好以后,運(yùn)行項(xiàng)目,就可以看到效果了:
可以看到,采用的是OAuth2.0協(xié)議,implicit授權(quán)模式,
client_id,是我們的客戶端id,要和ids4配置的匹配,下文會(huì)說到。
地址是ids.neters.club,Scopes?是我們定義的 blog.core.api,
這兩個(gè)都要和認(rèn)證服務(wù)匹配,具體是哪里呢,就是我們開啟認(rèn)證服務(wù)的地方:
我這里把授權(quán)地址URL,給寫到了配置文件里,因?yàn)橛袝r(shí)候我們的ids4項(xiàng)目可能會(huì)變化,
其實(shí)這里我們的apiName也可以配置到appsettings.json文件夾中。
注意,scope不需要填寫其他的,不然會(huì)報(bào)錯(cuò),只需要把 client_id 寫上即可:
接下來,我們就需要配置Ids4項(xiàng)目了。
?3
?Ids4項(xiàng)目配置回調(diào)地址?
這里其實(shí)就很簡(jiǎn)單的,如果我們不對(duì)回調(diào)地址做相應(yīng)的增加的話,會(huì)提示無效的錯(cuò)誤:
這里就很簡(jiǎn)單了:
這里我要強(qiáng)調(diào)一點(diǎn),不是說每次我們都要修改這個(gè)Config.cs這個(gè)類,這是初始化的,我一般都是直接修改的數(shù)據(jù)表數(shù)據(jù)就行,常見的三個(gè)配置表就是:
到了這里,我們一般就是修改完成了,可以測(cè)試一下,來個(gè)動(dòng)圖:
是不是很簡(jiǎn)單!不用再打開前端vue來測(cè)試了,是不是很方便。
IdentityServer4 項(xiàng)目還是挺好的,無論是企業(yè)里,還是個(gè)人使用,都是比較好的方案,除非你所在公司有一套自己的項(xiàng)目。
打完收工,下一篇,我們就簡(jiǎn)單來說說,如何做單點(diǎn)登錄了。
總結(jié)
以上是生活随笔為你收集整理的【实战 Ids4】║ 在Swagger中调试认证授权中心的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.Net Core 已支持 gRP
- 下一篇: 在 Blazor WebAssembly