ABP-VNext 用户权限管理系统实战03---动态api调用并传递token
一、使用动态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的更多相关文章
- SpringSecurity权限管理系统实战—八、AOP 记录用户、异常日志
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—一、项目简介和开发环境准备
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—四、整合SpringSecurity(上)
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—二、日志、接口文档等实现
系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...
- SpringSecurity权限管理系统实战—六、SpringSecurity整合jwt
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—七、处理一些问题
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—九、数据权限的配置
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- Vue Abp vNext用户登录(Cookie)
因为Abp vNext没找到Vue的模板,网上也没找到相关vNext的例子,只能自己试着写写,asp.net core abp vue都是刚学不久,所以很粗糙也可能有错误的地方,如果您看到请指正,谢谢 ...
- SpringSecurity权限管理系统实战—五、整合SpringSecurity(下)
系列目录 前言 上篇文章SpringSecurity整合了一半,这次把另一半整完,所以本篇的序号接着上一篇. 七.自定义用户信息 前面我们登录都是用的指定的用户名和密码或者是springsecurit ...
- SpringSecurity权限管理系统实战—三、主要页面及接口实现
系列目录 前言 后端五分钟,前端半小时.. 每次写js都头疼. 自己写前端是不可能的,这辈子不可能自己写前端的,只能找找别人的模板才能维持的了生存这样子.github,gitee上的模板又多,帮助文档 ...
随机推荐
- pip升级和卸载安装的第三方库
pip install --upgrade 第三方库名 pip uninstall 第三方库名
- 乐高式扩展:在Seal软件供应链防火墙中轻松集成代码规范工具
上个月,Seal 软件供应链防火墙 v0.2(以下简称"Seal")正式发布,这一版本实现了可扩展架构,用户可以根据自身需求插件式集成原生或第三方解决方案,灵活扩展扫描能力. 在前 ...
- compilation.templatesPlugin is not a function
ERROR Failed to compile with 1 error TypeError: compilation.templatesPlugin is not a function - SetV ...
- DNS--安装&&配置文件
1 下载 #下载服务yum -y install bind#下载解析工具yum -y install bind-utils 2 配置文件 主配置文件 /etc/named.conf 区配置文件 /va ...
- KB21N、KB24N作业分配与冲销
一.KB21N 调用BAPI:BAPI_ACC_ACTIVITY_ALLOC_POST 经测试,分配订单时行项目一次性最多传332条数据 "------------------------- ...
- 【QT】tr()的作用
函数 tr() 全名是 QObject::tr() ,被它处理的 字符串可以 使用工具提取出来翻译成其他语言, 也就是做国际化使用. 只要记住,Qt 的最佳实践:如果你想让你的程序国际化的话,那么,所 ...
- mysql和redis库存扣减和优化
前言 大流量情况下的库存是老生常谈的问题了,在这里我整理一下mysql和redis应对扣除库存的方案,采用jmeter进行压测. JMETER设置 库存初始值50,线程数量1000个,1秒以内启动全部 ...
- 10、SpringBoot-mybatis-plus-druid多源数据
系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...
- 编译busybox错误汇总
提示错误: arm-linux-gcc:Command not found PATH里有/usr/oca/arm/bin,但是make的时候,就是找不到 arm-linux-gcc 原因: ex ...
- C#利用控件实现柱形图分析
数据 { using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=db_TomeOne&quo ...