15.oauth2 + oidc 實現 server部分


OAuth主要作受權。
OpenIdConnect簡歷在OAuth2.0基礎之上的,相結合
客戶端、受權中心、Resource Owner用戶自己(資源的擁有者)、Resource Server

經過ProfileService把Cliams轉換返回給客戶端

這個代碼裏面已經包含了最新的登錄和註冊

啓動程序



在這個例子之上進行IdentityServer的開發。把MVC的註冊和登錄變成一個單點登錄,把他的登錄信息返回給第三方

輸入IdentityServer4,添加上最新的包引用







這時候須要一個config,建立一個config.cs的類,把以前寫過的config拷貝過來


如今是個空的

以前代碼拷貝過來,只保留一個Client

這裏咱們用隱式的流程,隱式模式和受權碼的模式很是像


而後再定義ApiResource

再定義TestUser在這個命名空間下



claims先去掉,這裏先不加

這幾個都是config內獲取的


這裏還須要加IdentityResource

因此這裏須要再新建一個方法返回IdentityResource的可枚舉類型

openId、Profile、Email是IdentityServer測試的方法給咱們提供的

把它添加到config的配置裏面

最後在mvc的這裏添加上IdentityServer()的中間件
這裏的UseAuthentication咱們去掉了

IdentityServer()的中間件

這樣咱們就把IdentityServer添加到咱們的MVC程序裏了mvc

在Controller裏面把邏輯實現

把原來登錄的邏輯去掉。
這裏註釋掉



註冊的代碼所有註釋掉

這裏註釋

使用SignOutAsync來替代


改造登錄

users注入一下

修改這裏的登錄的ViewModel,Emial修改成UserName

登錄頁面view內也要綁定爲UserName



登錄成功咱們須要傳一些參數過去。這樣就經過IdentityServer4實現了登錄,並實現了跳轉

這樣咱們登錄的邏輯就實現完了







 測試

相關文章
相關標籤/搜索