18.Consent 实现思路介绍


讲一下实现Consent的逻辑
interaction它会根据returnUrl
输入用户名和密码后是在登陆的Controller,登陆完之后呢,会有一个returnUrl
18.Consent 实现思路介绍
returnurl会被带到Consent页面
18.Consent 实现思路介绍

18.Consent 实现思路介绍
登陆后会跳转到consent页面,returnUrl也带过来了

18.Consent 实现思路介绍
在Consent页面,把这三个都添加进来了。Client、resource、IdentityServerInieractinService

18.Consent 实现思路介绍
IdentityServerInieractinService主要是负责根据returnUrl拿到context。这里调用的方法GetAuthorizationContextAsync
18.Consent 实现思路介绍
F12进去查看AuthorizationRequest包含的内容
18.Consent 实现思路介绍

这个ScopeRequest就是,就是你这一次请求哪些Scope
18.Consent 实现思路介绍
比如说这个scope,你只请求api1
18.Consent 实现思路介绍
通过request的ClientId,然后通过ClientStore把这个client的信息拿出来
18.Consent 实现思路介绍
拿到的这个Client其实就是我们在Config配置的这些信息
18.Consent 实现思路介绍
Resource包含ApiResource和IdentityResource

18.Consent 实现思路介绍
每一条IdentityResource其实是一个scope
18.Consent 实现思路介绍

18.Consent 实现思路介绍
每一个ApiResource里面其实是多个Resource的
F12进去看源代码。
18.Consent 实现思路介绍
APIResource里面其实是有一个Scope的集合
18.Consent 实现思路介绍
Consent这个Controller主要是用来干嘛的呢?
通过我们的IdentityServerInterationService获取当前请求的上下文
18.Consent 实现思路介绍
这个上下文request里面有我们的ClientID,以及请求了哪些Scope,ScopesRequested。
scope里面只包含了名字
18.Consent 实现思路介绍

18.Consent 实现思路介绍
18.Consent 实现思路介绍
返回的是Resources,Resources再次F12再进去。
18.Consent 实现思路介绍
它里面就包含了两个,一个IdentityResource一个是ApiResource
18.Consent 实现思路介绍
然后就可以根据resource拼成一个Model
18.Consent 实现思路介绍
拼成的Model展示到我们的页面上
18.Consent 实现思路介绍
先来实现页面的显示




 

上一篇:22.Consent 确认逻辑实现


下一篇:类型“System.Data.Linq.DataContext”在未被引用的程序集中定义。必须添加对程序集“System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。