日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【实战 Ids4】║ 在Swagger中调试认证授权中心 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

回家的路上照顧好自己?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)單了:

// blog.admin 前端vue項(xiàng)目 new Client {ClientId = "blogadminjs",ClientName = "Blog.Admin JavaScript Client",AllowedGrantTypes = GrantTypes.Implicit,AllowAccessTokensViaBrowser = true,// 回調(diào)地址uri集合,可以寫多個(gè)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",//?上邊的這三個(gè)?scope ,可以不用配置到swagger中"blog.core.api"//?這個(gè)資源api的name,要一致} },

這里我要強(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。