第28期-实现OpenAPI帮助文档授权
- 2天前 | 48分钟
- VIP
设置微服务启动端口,在生产平台中部署 OpenAPI 帮助文档,导入演示数据,创建安全操作过滤器,在 IdentityServer 上配置 CORS 跨域资源共享,在 OpenAPI 帮助文档中配置 OAuth 身份认证授权方式,基于 JWT 令牌的 Bearer 身份认证方式,在 API 操作上注解授权特性,基于策略和角色的授权,匿名访问时跳过授权。
设置微服务启动端口,在生产平台中部署 OpenAPI 帮助文档,导入演示数据,创建安全操作过滤器,在 IdentityServer 上配置 CORS 跨域资源共享,在 OpenAPI 帮助文档中配置 OAuth 身份认证授权方式,基于 JWT 令牌的 Bearer 身份认证方式,在 API 操作上注解授权特性,基于策略和角色的授权,匿名访问时跳过授权。
支持第三方外部社交账号登录方式,关于开源 OAuthHandler 处理程序,集成微信登录,集成 QQ 登录,集成支付宝登录,集成微博登录,集成微软账号登录,集成 GitHub 登录,支持更多社交账号登录方式,在配置文件中配置客户端密钥信息,在容器中注入外部认证方式,质询并跳转到第三方外部登录,处理外部登录回调流程。
创建注销模型,实现注销方法,创建注销确认视图,演示注销流程,创建重置密码模型,实现模型多语言本地化,创建重置密码方法,创建重置密码视图,使用手机验证码重置密码流程,使用工具生成令牌签名所需的数字证书,配置并读取数字证书,演示授权确认页面和接口请求流程。
理解授权机制工作原理,终端用户,客户端,身份服务器,资源提供者,访问令牌,身份令牌,实现授权确认机制,创建授权确认模型,授权确认控制器,多语言授权确认视图,测试授权过程与请求地址。
集成阿里云服务接口,统一处理接口认证,使用短信开放接口,发送短信和邮件,创建注册视图模型并对元数据进行本地化多语言,创建多语言注册视图,注册模型验证,处理远程异步验证,实现前端发送验证码。
统一身份认证授权中心需要对外提供登录,注册,双重身份认证,重置密码,找回密码,第三方登录方式,登录控制器,登录界面,视图的本地化与多语言,用户管理与登录管理,实现多语言模型和界面,本地验证与服务端验证,登录成功进入欢迎界面,展示当前登录用户的声明信息。
IdentityServer 是基于 .NET 平台开源的 OpenID Connect 和 OAuth 框架,提供身份认证,单点登录,单点注销,使用令牌对 API 访问控制,可集成外部身份提供商,具有高可扩展性,在零度微服务框架中实现单点登录和令牌颁发服务,关于授权中心的用户数据,客户端数据,运行时数据的持久化存储方案,配置依赖注入容器,数据库迁移,生成一些可测试的演示数据。
权限策略定义,授权处理器,授权过程,实现权限应用服务和数据传输对象,查询指定主体的权限分组树,为主体分配指定的权限,生成授权演示数据,使用 WebAPI 权限控制器查询和分配权限,测试并演示授权流程。
关于灵活可扩展授权机制的工作流程,身份认证的目的是确定用户的身份主体,而授权是针对身份主体分配资源的操作权限,理解身份主体,权限策略,资源,操作,授权决定,授权制行,实现 ACL 访问控制列表,使用自定义的仓储存储权限授予列表,基于分布式缓存的权限存储器,可扩展的权限值提供者接口,权限断言检查器,自定义授权处理器。
理解基于策略的授权机制,灵活且可扩展的权限定义系统,基于树型结构的权限定义,权限分组定义,权限定义上下文,设计权限定义提供者接口,实现权限定义提供者接口,权限显示名称的本地化多语言,权限定义管理器,扩展微软默认的授权策略提供者,从权限管理器查询权限,并将权限定义转换为授权策略,自定义授权策略提供者的回退机制。
使用 OpenAPI 生成优雅美观的在线帮助文档,在项目中添加 OpenAPI 支持,配置 Swagger 依赖注入和中间件,定制并修改页面模板结构,使用样式表美化帮助文档界面,定制图标和品牌标识,使用 Swagger 测试 WebAPI 接口,使用 Curl 命令发起 HTTP 请求并测试 WebAPI 接口。
简化 Startup 启动类配置,横向扩展启动类,分离依赖注入和中间件管道的配置,使用 IHostingStartup 接口在启动时从外部程序集向应用添加增强功能,动态配置服务容器,使用 IStartupFilter 筛选器接口动态扩展 Startup 启动类,动态配置中间件管道,实现自定义 IMvcBuilder 扩展方法。
基于 FluentValidation 链式验证消息的多语言实现,实现并替换默认多语言错误消息,属性显示名称多语言,在模型链式验证器中自定义错误消息并实现多语言,开源的资源文件编辑管理器,资源文件最优雅的编辑方式,使用工具自动翻译并生成多语言资源文件。
国际化,全球化,本地化,区域性,学习 .NET 框架中的语言文化相关类,关于 ASP.NET Core 的全球化与本地化,实现多语言切换功能,基于数据注解验证机制的错误消息多语言,属性显示名称多语言,定制替换微软提供的默认错误消息并实现多语言。
在零度框架中实现可扩展的模型验证机制,微软 .NET 框架中基于特性的数据注解验证方式,定制默认错误消息,基于 FluentValidation 实现链式验证,编写链式验证器,在依赖容器中自动注入验证,在 WebAPI 中启用自动模型验证,在代码中调用验证器,同时支持注解验证和链式验证。
数据传输对象 DTO 用于在应用程序层和客户端表现层之间传输数据,理解使用 DTO 数据传输对象的优缺点,实现基于 CRUD 增删改查操作的通用泛型应用服务,使用 AutoMapper 自动映射实体和 DTO 对象,将映射规则的配置自动注入到依赖容器,基于泛型通用应用服务自定义应用服务,在依赖容器中注入泛型应用服务。
理解领域服务与应用服务的区别,应用服务用于实现应用程序的用例,它用于将领域服务的逻辑公开给表现层,在框架中设计并实现应用服务,理解并实现 DTO 数据传输对象,实现 CRUD 增删改查操作,实现分页与排序,在依赖容器中注册应用服务,在表现层 Web API 中调用应用服务接口实现业务用例,使用 Watch 监视命令启动并测试项目。
本地领域事件与分布式队列集成事件的区别,使用中介者模式实现本地领域事件机制,可避免交互对象之间的紧耦合关系,实现领域事件接口,当持久化聚合根或实体时自动分发领域事件,编写领域事件,使用 MediatR 中介者实现发布订阅机制,领域事件订阅处理器,在容器中动态注入领域事件订阅者。
设计软删除与多租户接口,使用全局过滤器查询软删除和多租户数据,租户数据存储与租户连接字符串,租户相关实体映射,使用变更跟踪器实现软删除,当前租户访问器,使用 AsyncLocal 和 Dispose 模式实现租户环境灵活切换,通过多租户中间件拦截请求并在上下文中提取租户信息。
使用设计时工厂创建 DbContext 迁移上下文,与 EF Core 无关的数据库初始化与演示数据生成机制,设计数据初始化提供者接口,实现数据初始化接口并在容器中自动注入,在请求管道中启动数据初始化机制,返回可空的实体类型,使用链式依赖注入,项目文档约定,基于通用仓储 实现自定义仓储。
自动加载模型配置,实体模型映射配置,主键配置,字段约束配置,索引配置,数据表关系配置,自定义值转换器,元组类型与析构器,使用 DbContext 实现泛型通用仓储,依赖容器注入约定,在容器中注入 DbContext 上下文,使用池提高上下文创建性能,在容器中注入 DbContext 上下文工厂,数据库连接重试机制,在容器中注入泛型通用仓储。
学习并理解基础设施层的作用,基础设施层为其它层提供通用的技术能力,提供层间的通信,为领域层实现持久化机制,使用 Entity Framework 框架实现通用泛型仓储,实现异步查询提供者,加载关联数据,领域异常设计,动态生成规约表达,实现并使用规约计算器查询数据,使用 DbContext 上下文实现工作单元。
规约模式用于定义可重用、可组合、有意义和可测试的过滤器,简单地说,规约模式就是对查询条件表达式用类的形式进行封装,使用第三方开源代码设计并构建自己的规约模式,抽象规约接口与基本实现,规约计算器,在仓储模式中支持规约查询,规约的组合与生成器,在领域服务中使用规约查询数据。
仓储和工作单元模式旨在创建应用程序的业务逻辑层和数据访问提供程序之间的抽象,实现这些模式可让你的应用程序对数据数据持久层的变化不敏感,从而提供对数据访问层的灵活扩展,而且很容易进行自动化单元测试和进行测试驱动开发,实战演练,在项目框架中实现通用泛型仓储和工作单元模式,抽象异步查询器,在仓储上扩展异步查询器。
理解领域模型驱动设计,设计抽象的实体基类,具有独立主键的实体和具有复合主键的实体,设计聚合根接口,设计领域事件通知,多租户接口设计,值对象基类设计,使用记录类型实现值对象,通过示例实战演示,实体聚合根值对象在项目中的应用,通过几个示例学习抽象基类的各种用法。
在框架中支持可空的引用类型,使用可为空和不可为空引用类型更清晰地表达设计意图,使用特性注解有助于编译器对可空引用状态的静态分析,使用可为空引用类型迁移现有代码,可以通过使用可空包容运算符消除警告,修改框架项目文件以支持可空引用类型检查。
同步通信与异步通信,实现微服务架构中的事件总线,抽象可扩展的事件总线接口,设计可扩展的事件总线,消息事件定义,事件总线接口抽象,事件处理程序抽象,基于动态类型的事件处理程序,事件与订阅者管理器,使用 RabbitMQ 实现事件总线接口,使用指数退避算法实现连接复原。
从零开始搭建基于微服务和领域模型驱动设计的分层架构,零度开源仓库地址介绍,学习微软官方最新编码规范,零度框架的搭建以开发简单,多屏体验,前后端分离,灵活部署,最少依赖,最新框架为原则,以物联网平台管理系统为业务模型,参考诸多优秀开源框架,采用主流稳定的技术栈,从零开始搭建企业级架构。