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展示到我们的页面上

先来实现页面的显示




 

posted @ 2019-06-03 22:54  高山-景行  阅读(415)  评论(0编辑  收藏  举报