日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2023/12/4 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【实战 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 項目還是挺好的,無論是企業里,還是個人使用,都是比較好的方案,除非你所在公司有一套自己的項目。

打完收工,下一篇,我們就簡單來說說,如何做單點登錄了。

總結

以上是生活随笔為你收集整理的【实战 Ids4】║ 在Swagger中调试认证授权中心的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。