首页 > 其他分享 >ABP-VNext 用户权限管理系统实战03---动态api调用并传递token

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token

时间:2024-02-04 10:05:38浏览次数:26  
标签:VNext 03 调用 服务 --- token api 模块 BackgroundJob

一、使用动态api的目的

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

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

二、集成步骤

1、创建可调用的动态api

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_HTTP

 

有方法GetInfo()

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_客户端_02

 在IdentityServiceHostModule配置中增加配置

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_HTTP_03

 

2、BackgroundJobApplicationModule客户端调用

在调用之前要进行配置

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_客户端_04

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_HTTP_05

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_HTTP_06

 最后在BackgroundJobApplicationModule模块HttpClientTest类中调用

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_客户端_07

 三、传递token

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

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

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

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_客户端_08

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_当前用户_09

 

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_当前用户_10

 

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_当前用户_11

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_当前用户_12

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

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

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

Volo.Abp.Http.Client.IdentityModel.dll

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

ABP-VNext 用户权限管理系统实战03---动态api调用并传递token_HTTP_13

 



标签:VNext,03,调用,服务,---,token,api,模块,BackgroundJob
From: https://blog.51cto.com/u_14316983/9576621

相关文章

  • nginx---防止盗链
    ngx_http_referer_module模块:用来阻止Referer首部无有效值的请求访问,可防止盗链valid_referersnone|blocked|server_names|string...;定义referer首部的合法可用值,不能匹配的将是非法值none:请求报文首部没有referer首部blocked:请求报文有referer首部,但无有效值se......
  • Python elasticsearch-py类库基础用法
    实践环境https://pypi.org/project/elasticsearch/pipinstallelasticsearch==7.6.0离线安装包及依赖包下载地址:https://files.pythonhosted.org/packages/f5/71/45d36a8df68f3ebb098d6861b2c017f3d094538c0fb98fa61d4dc43e69b9/urllib3-1.26.2-py2.py3-none-any.whl#sha256=d8ff9......
  • FastAPI学习-31 FastAPI 如何集成 socket.io
    前言socket.io就是基于websocket封装的一个库,主要特点是能够进行实时的双向通讯,主要应用场景有实时的聊天,数据实时分析,数据传输,文件协同合作。有个socket.io的fastapi-socketio官方库,该库依赖传统的python-socketio库环境准备pipinstallfastapi-socketiofastapi服务端代码......
  • 关于Windows11的优化内容 - 进阶者系列 - 学习者系列文章
          这几天无事,想起上次刚重装的Windows11操作系统,对于系统优化的内容想记录一下,以前没写过相关的博文,这次就做个记录吧。对于Windows11,已经出来几年了,相关的设置啥的也有,就是优化方面的软件和设置也有相关的,这次就把笔者这边所有相关的优化工具软件和脚本啥的一并发布......
  • 【2024-02-01】带病上班
    20:00岁不寒无以知松柏,事不难无以知君子。                                                 ——荀子昨晚睡觉的状态,跟前年阳了的那次感受十分相似,欲睡睡不着。刀片喉......
  • 【2024-02-02】连岳摘抄
    23:59成长的渐进方式很奇怪,向前两步后退一步。成长总会突然加速,但有时你会处于蛰伏期。请记住这一点,温柔地对待自己。                                                 ......
  • 【scikit-learn基础】--『分类模型评估』之评估报告
    分类模型评估时,scikit-learn提供了混淆矩阵和分类报告是两个非常实用且常用的工具。它们为我们提供了详细的信息,帮助我们了解模型的优缺点,从而进一步优化模型。这两个工具之所以单独出来介绍,是因为它们的输出内容特别适合用在模型的评估报告中。1.混淆矩阵混淆矩阵(ConfusionM......
  • 界面控件DevExpress ASP.NET Spreadsheet组件 - 轻松集成电子表格功能!(一)
    DevExpressASP.NETSpreadsheet组件允许您轻松地将电子表格功能合并到任意ASP.NET应用程序,它可以加载、转换和保存工作簿到XLS-XLSx二进制文件格式,还可以导出和导入XLSX、CSV和TXT文件。P.S:DevExpressASP.NETWebForms Controls拥有针对Web表单(包括报表)的110+种UI控件,可利......
  • J-link J-scop 进行可视化数据波形调试
    Step1.软件安装链接:https://pan.baidu.com/s/1TQba9HFmnz30rBAHptrn3w?pwd=kron提取码:kron可能老版本的jlink在安装的时候没有这个软件有需要的可以自己下载一个正常安装即可,安装完成后打开软件Step2.软件使用1.选择芯片2.选择axf文件完成后应该是这个样子的点击......
  • Kafka-如何重设消费者位移(OFFSET)
    1.为什么要重设消费者组位移?我们知道,Kafka和传统的消息引擎在设计上是有很大区别的,其中一个比较显著的区别就是,Kafka的消费者读取消息是可以重演的(replayable)。像RabbitMQ或ActiveMQ这样的传统消息中间件,它们处理和响应消息的方式是破坏性的(destructive),即一旦消息被成功......