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
把原來登錄的邏輯去掉。
這裏註釋掉
註冊的代碼所有註釋掉
這裏註釋
使用SignOutAsync來替代
改造登錄
users注入一下
修改這裏的登錄的ViewModel,Emial修改成UserName
登錄頁面view內也要綁定爲UserName
登錄成功咱們須要傳一些參數過去。這樣就經過IdentityServer4實現了登錄,並實現了跳轉
這樣咱們登錄的邏輯就實現完了
測試