一、使用动态api的目的

ABP可以自动创建C# API 客户端代理来调用远程HTTP服务(REST APIS).通过这种方式,你不需要通过 HttpClient 或者其他低级的HTTP功能调用远程服务并获取数据.

现在有两个服务:BackgroundJob服务要调用IdentityManagement服务,并在调用时传递token

二、集成步骤

1、创建可调用的动态api

在Bridge.IdentityManagement.Application模块中有类UserService

有方法GetInfo()

在IdentityServiceHostModule配置中增加配置

Configure<AbpAspNetCoreMvcOptions>(options =>
{
options.ConventionalControllers.Create(typeof(IdentityManagementApplicationModule).Assembly, option =>
{
option.TypePredicate = type => { return true; };
});
});

2、BackgroundJobApplicationModule客户端调用

在调用之前要进行配置

第一步:在BackgroundJobHttpApiClientModule注入程序集IdentityManagementApplicationContractsModule

第二步:在Bridge.BackgroundJobService.Host中配置调用的远程ip

第三步:在BackgroundJobHttpApiModule中依赖BackgroundJobHttpApiClientModule模块

最后在BackgroundJobApplicationModule模块HttpClientTest类中调用

三、传递token

现在服务和服务之前可以像类中方法中一样调用了,但是在GetInfo方法中获取不到token,现在需要将在访问Test方法时获取到的token进行传递

查看是不是获取到了token只需要看看当前用户也是就是变量CurrentUser有值。

1、BackgroundJob服务中解析token并获取当前用户的值

第一步:修改BackgroundJob配置文件,确定当前api的名称

第二步:在auth服务中增加scope

项目之前在请求token时写死了Scope现在注掉

到此,访问BackgroundJob服务的api应该可以拿到当前用户数据了。

但是,如果你通过动态api,从BackgroundJob服务去访问其它服务还是拿不到token

此时我们需要在BackgroundJobServiceHostModule服务中依赖两个模块:

Volo.Abp.Http.Client.IdentityModel.dll

Volo.Abp.Http.Client.IdentityModel.Web.dll

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token的更多相关文章

  1. SpringSecurity权限管理系统实战—八、AOP 记录用户、异常日志

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  2. SpringSecurity权限管理系统实战—一、项目简介和开发环境准备

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  3. SpringSecurity权限管理系统实战—四、整合SpringSecurity(上)

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  4. SpringSecurity权限管理系统实战—二、日志、接口文档等实现

    系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...

  5. SpringSecurity权限管理系统实战—六、SpringSecurity整合jwt

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  6. SpringSecurity权限管理系统实战—七、处理一些问题

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  7. SpringSecurity权限管理系统实战—九、数据权限的配置

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  8. Vue Abp vNext用户登录(Cookie)

    因为Abp vNext没找到Vue的模板,网上也没找到相关vNext的例子,只能自己试着写写,asp.net core abp vue都是刚学不久,所以很粗糙也可能有错误的地方,如果您看到请指正,谢谢 ...

  9. SpringSecurity权限管理系统实战—五、整合SpringSecurity(下)

    系列目录 前言 上篇文章SpringSecurity整合了一半,这次把另一半整完,所以本篇的序号接着上一篇. 七.自定义用户信息 前面我们登录都是用的指定的用户名和密码或者是springsecurit ...

  10. SpringSecurity权限管理系统实战—三、主要页面及接口实现

    系列目录 前言 后端五分钟,前端半小时.. 每次写js都头疼. 自己写前端是不可能的,这辈子不可能自己写前端的,只能找找别人的模板才能维持的了生存这样子.github,gitee上的模板又多,帮助文档 ...

随机推荐

  1. Runnable接口的 run() 方法和start()方法

    1.start()方法来启动线程,真正实现了多线程运行.这时无需等待run方法体代码执行完毕,可以直接继续执行下面的代码:通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就 ...

  2. 关于_beginthreadex和CreateThread的区别

    关于_beginthreadex和CreateThread的区别 在 Win32 API 中,创建线程的基本函数是 CreateThread,而 _beginthread(ex) 是 C++ 运行库的 ...

  3. 采购订单创建、修改、审批增强ME21N/ME22N/ME28/ME29N

    一.采购订单创建修改增强 BADI:ME_PROCESS_PO_CUST 通过POST方法中的参数im_header,获取对应的数据 订单头 "----------------------- ...

  4. Java | Spring Boot数据源配置原理

    在数据库访问过程中,"数据源"无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能. 目前,在市面上有很多优 ...

  5. 深入剖析 RSA 密钥原理及实践

    一.前言 在经历了人生的很多至暗时刻后,你读到了这篇文章,你会后悔甚至愤怒:为什么你没有早点写出这篇文章?! 你的至暗时刻包括: 1.你所在的项目需要对接银行,对方需要你提供一个加密证书.你手上只有一 ...

  6. 关于el-upload上传图片的一些坑clearFiles()的使用

    https://blog.csdn.net/weixin_46421824/article/details/109195624?spm=1001.2101.3001.6661.1&utm_me ...

  7. freeswitch自带yum源配置方式

    概述 在开发过程中,我们使用freeswitch源代码编译安装的方式比较多,这种方式适合对fs比较了解,有一定基础的研发人员. 但是,对于希望快速上手使用fs普通功能的人员来说,源代码编译的方式就过于 ...

  8. mysql 主从状态查询及恢复

    转载请注明出处: 备机执行主备恢复的命令: 今天早上打开电脑,验证测试环境的服务时,发现服务挂了,当登录服务器查看日志的时候,发现数据库连不上了,紧忙登上数据库服务器,发现数据库mysql 的服务挂了 ...

  9. Redis 哨兵模式高可用

    本文为博主原创,未经允许不得转载: 目录: 1. 哨兵 Sentinel 介绍 2. 哨兵架构特点及工作原理 3. redis哨兵架构搭建步骤 4. 哨兵数据丢失 5. spring boot 整合  ...

  10. TCP 三次握手和四次挥手详解

    转载请注明出处: TCP协议(Transmission Control Protocol) 面向连接的,可靠的,基于字节流的传输层通信协议 特点: 基于连接的:数据传输之前需要建立连接 全双工的:双向 ...