18.Consent 實現思路介紹


講一下實現Consent的邏輯
interaction它會根據returnUrl
輸入用戶名和密碼後是在登錄的Controller,登錄完以後呢,會有一個returnUrl

returnurl會被帶到Consent頁面



登錄後會跳轉到consent頁面,returnUrl也帶過來了


在Consent頁面,把這三個都添加進來了。Client、resource、IdentityServerInieractinService


IdentityServerInieractinService主要是負責根據returnUrl拿到context。這裏調用的方法GetAuthorizationContextAsync

F12進去查看AuthorizationRequest包含的內容


這個ScopeRequest就是,就是你這一次請求哪些Scope

好比說這個scope,你只請求api1

經過request的ClientId,而後經過ClientStore把這個client的信息拿出來

拿到的這個Client其實就是咱們在Config配置的這些信息

Resource包含ApiResource和IdentityResource


每一條IdentityResource實際上是一個scope



每個ApiResource裏面實際上是多個Resource的
F12進去看源代碼。

APIResource裏面實際上是有一個Scope的集合

Consent這個Controller主要是用來幹嗎的呢?
經過咱們的IdentityServerInterationService獲取當前請求的上下文

這個上下文request裏面有咱們的ClientID,以及請求了哪些Scope,ScopesRequested。
scope裏面只包含了名字




返回的是Resources,Resources再次F12再進去。

它裏面就包含了兩個,一個IdentityResource一個是ApiResource

而後就能夠根據resource拼成一個Model

拼成的Model展現到咱們的頁面上

先來實現頁面的顯示




 api

相關文章
相關標籤/搜索