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

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

时间:2024-01-27 17:11:20浏览次数:35  
标签:VNext 03 调用 服务 --- token api ABP BackgroundJob

一、使用动态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

 

标签:VNext,03,调用,服务,---,token,api,ABP,BackgroundJob
From: https://www.cnblogs.com/zhengwei-cq/p/17913154.html

相关文章

  • (坚持每天写算法)算法复习与学习part1基础算法part1-12——双指针算法
    双指针是一种思路,很多题都可能用得到,这里我就只选取Acwing网站的三道题(事实上我最近就是在这里刷题,leetcode反而不怎么去了,刷完这个网站的我就会去leetcode刷了)双指针一般来讲会在数组有序的情况下应用,但是如果是无序的也是有可能的,两个指针会遍历整个数组(如果条件允许的......
  • 李宏毅《机器学习》总结 - Self-attention
    解决的问题:输入\(n\)个向量,输出相同个数的向量。(如,输入一个句子,输出句子中每个词的词性。每个单词转化成向量可以用one-hotvector、wordembedding方法等)一个比较初级的想法:将每个向量都连上去一个FC(fullyconnectednetwork),但是这样有个问题是,如果遇到一个句子中有两个相......
  • Java-05字符串
    tip:[start]字符串是计算机与人类沟通的重要手段。——闫学灿tip:[end]字符与整数的联系——ASCII码每个常用字符都对应一个-128~127的数字,二者之间可以相互转化。注意:目前负数没有与之对应的字符。常用ASCII值:'A'-'Z'是65~90'a'-'z'是97-122'0'-'9'是......
  • PyCharm如何更改背景颜色-PyCharm更改背景颜色的方法
    https://www.onlinedown.net/article/10037132.htm 第一步:打开pycharm,点击File,选择Settings,或者用快捷键Ctrl+Alt+s。      第二步:点击Editor中的ColorScheme。      第三步:在ColorScheme中点击Python。      第四步:点击Python后出现此界面,点击Schem......
  • u-boot的链接脚本文件u-boot.lds分析
    u-boot的链接脚本文件u-boot.lds分析最新推荐文章于 2023-06-0107:57:20 发布LamarDavis于2020-09-1420:06:12发布阅读量749收藏10点赞数分类专栏:linux版权linux专栏收录该内容30篇文章2订阅订阅专栏u-boot......
  • Flower - 天哪甚至有一个板块叫 flower!
    天哪甚至有一个板块叫flower!首先致谢一下,Linux和链表。感谢你们。没有你们就没有如今的这朵鲜花。因为是鲜......
  • 【转】U-BOOT之四:u-boot.lds分析
    【转】U-BOOT之四:u-boot.lds分析u-boot.lds决定了u-boot可执行映像的连接方式,以及各个段的装载地址(装载域)和执行地址(运行域)。u-boot.lds决定了u-boot可执行映像的连接方式,以及各个段的装载地址(装载域)和执行地址(运行域)。GNU官方网站上对.lds文件形式的完整描述:SECTIONS{.......
  • B. Plus-Minus Split
    原题链接我太菜了赛时用\(O(n^2)\)的方法做,真的想不到什么线性的方法,比完才知道原来这么******简单如何得到思路我们肯定要尽可能地得到一串数字使其和为零假设\(B\)为最长的一串数字和为零的序列,那么可能存在其子序列的和也为零,而我们把这个子序列从\(B\)中分开来对最后的结......
  • 利用vue-inline-svg实现将svg进行动态拆分
    构想是很好的,svg的优势在于矢量,可以随便实现异形控件就来说下这玩意怎么用吧先用npm导入(注意版本,第三方的玩意一版本般都比较新)vue的话是这个npminstallvue-inline-svg我是vue3所以用的版本不一样npminstallvue-inline-svg@next这个是npm那边的说明如果会看这个当......
  • Burp Suite Professional 2024.1.1 for macOS x64 & ARM64 (sysin) - 世界排名第一的
    BurpSuiteProfessional2024.1.1formacOSx64&ARM64(sysin)-世界排名第一的网络渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-mac/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBurpSuiteProfessionalTheworld’s#1webpenet......