講一下實現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