通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权-百度版...

目录:

一、通过Dapr实现一个简单的基于.net的微服务电商系统

二、通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解

三、通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr

四、通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布

通过Dapr实现一个简单的基于.net的微服务电商系统(五)——一步一步教你如何撸Dapr之状态管理

通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务

通过Dapr实现一个简单的基于.net的微服务电商系统(七)——一步一步教你如何撸Dapr之服务限流

通过Dapr实现一个简单的基于.net的微服务电商系统(八)——一步一步教你如何撸Dapr之链路追踪

通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权

在上一篇文章中案例使用了github的oauht2.0授权,实际上使用哪个平台并不局限,只要平台实现了oauth2.0标准都可以接入。本节我们聊聊如何集成百度oauth2.0。

  本来想集成微信/QQ/微博的,结果发现不是需要企业资质就是要个人认证,就百度开放平台不需要,就用百度来演示吧。

  首先我们需要注册并登录百度开发者平台,同时创建一个应用,获取它的API Key和Secret Key

  进入应用详情后在点击左下角的安全设置,配置我们的鉴权域名【http://oauth.dapreshop.com:30882】到授权回调页并禁用Implicit Grant授权方式,其他不用填如下图:

 

 

    接着修改我们的component文件,录入刚才我们获取的API Key和Secret Key到clientid和clientsecret一栏,并修改scopes、authURL、redirectURL如下所示,修改完毕后记得重新apply一下

apiVersion: dapr.io/v1alpha1

kind: Component

metadata:

  name: baiduauth

  namespace: dapreshop

spec:

  type: middleware.http.oauth2

  version: v1

  metadata:

  - name: clientId

    value: ""

  - name: clientSecret

    value: ""

  - name: scopes

    value: "basic"

  - name: authURL

    value: "http://openapi.baidu.com/oauth/2.0/authorize"

  - name: tokenURL

    value: "https://openapi.baidu.com/oauth/2.0/token"

  - name: redirectURL

    value: "http://oauth.dapreshop.com:30882"

  - name: authHeaderName

    value: "myauth"

 4、修改一下获取用户信息的代码(这里是演示所以百度返回的openid我取前n位做登录名):

var model = new Model() { login = "" };

            if (HttpContextExt.Current.Headers.Any(x => x.Key.ToLower().Equals("myauth")))

            {

                var requestUri = new Uri($"https://openapi.baidu.com/rest/2.0/passport/users/getLoggedInUser?access_token={HttpContextExt.Current.Headers.FirstOrDefault(x => x.Key.ToLower().Equals("myauth")).Value.Replace("Bearer ", "")}");

                var result = await httpClientFactory.CreateClient().GetAsync(requestUri);

                if (result.IsSuccessStatusCode)

                {

                    var content = await result.Content.ReadAsStringAsync();

                    baidumodel obj = JsonSerializer.Deserialize<baidumodel>(content);

                    HttpContextExt.Current.Response.Cookies.Append("githubuser", JsonSerializer.Serialize(new Model() { login = obj.openid.Substring(0,8), name = obj.uname, avatar_url = $"http://tb.himg.baidu.com/sys/portraitn/item/{obj.portrait}" }),

                        new Microsoft.AspNetCore.Http.CookieOptions() { Domain = "dapreshop.com" });

                    HttpContextExt.Current.Response.Redirect("http://admin.dapreshop.com:30882");

                }

            }

            return model;

  重新启动整个demo,这时候再次点击图标,我们会跳转至百度的授权页

  回跳后重新初始化就能看到我们取到了百度授权的用户信息

相关文章:

  • Dapr能否引领云原生中间件的未来?

  • 云原生 | 阿里巴巴的Dapr实践与探索

  • Dapr | 云原生的抽象与实现

  • Dapr 可视化指南

  • Dapr 知多少 | 分布式应用运行时

  • Dapr 正式发布 1.0

  • Dapr 交通流量控制示例

  • Dapr是如何简化微服务的开发和部署

  • 微软开源微服务运行时Dapr,赋能云原生应用开发

  • YARP实现Dapr服务调用的反向代理

  • Dapr微服务应用开发系列0:概述

  • Dapr微服务应用开发系列1:环境配置

  • Dapr微服务应用开发系列2:Hello World与SDK初接触

  • Dapr微服务应用开发系列3:服务调用构件块

  • Dapr微服务应用开发系列4:状态管理构件块

  • Dapr微服务应用开发系列5:发布订阅构建块

  • Windows环境下Dapr入门

  • 云原生 | .NET 5 with Dapr 初体验

  • 通过Dapr实现一个简单的基于.net的微服务电商系统

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(五)——一步一步教你如何撸Dapr之状态管理

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(七)——一步一步教你如何撸Dapr之服务限流

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(八)——一步一步教你如何撸Dapr之链路追踪

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权

  • WebAssembly + Dapr = 下一代云原生运行时?

  • dapr 应用开发 | 环境配置

  • 乘风破浪,.Net Core遇见Dapr,为云原生而生的分布式应用运行时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各自用一句话来概括MVC、MVP、MVVM的差异特点

MVC&#xff1a; 用户的请求首先会到达Controller&#xff0c;由Controller从Model获取数据&#xff0c;选择合适的View&#xff0c;把处理结果呈现到View上&#xff1b; MVP&#xff1a; 用户的请求首先会到达View&#xff0c;View传递请求到特定的Presenter&#xff0c;Pre…

不用“背”单词,1个方法牢记7000单词:我是如何做到的?

全世界有3.14 % 的人已经关注了数据与算法之美上个月30号&#xff0c;我怀着忐忑的心情&#xff0c;再次打开了 词汇量测试网站。当我看到词汇量达到7190的时候&#xff0c;非常兴奋。以至于带着怀疑的态度测了第二次&#xff1a;7260。7000的词汇量是怎样的一个程度呢&#xf…

VS2005~VS2022,那些年用过的VS,致敬,青春!

微软在开发者博客上宣布了一则重磅消息 —— 众所期待的 Visual Studio 2022 开发工具包即将全面拥抱 64-bit&#xff0c;并将于今夏推出首个公共预览版本。笔者第一次接触的VS版本还是2005&#xff0c;那时候还在上大三&#xff0c;一眨眼的功夫&#xff0c;现在都VS2022了&am…

Cowboy 源码分析(十八)

在上一篇中&#xff0c;我们整理了下cowboy_http_protocol:header/3函数&#xff0c;在文章的末尾留下2个没有讲到的函数&#xff0c;今天&#xff0c;我们先看下cowboy_http_protocol:error_terminate/2函数&#xff0c;另一个函数下一篇&#xff0c;我们再看。cowboy_http_pr…

符合语言习惯的 Python 优雅编程技巧

Python最大的优点之一就是语法简洁&#xff0c;好的代码就像伪代码一样&#xff0c;干净、整洁、一目了然。要写出 Pythonic&#xff08;优雅的、地道的、整洁的&#xff09;代码&#xff0c;需要多看多学大牛们写的代码&#xff0c;github 上有很多非常优秀的源代码值得阅读&a…

compress后的bytearray再decode变大_笔记本电脑风扇噪音变大的原因及其解决办法

笔记本使用时间长了之后&#xff0c;风扇声音会变大&#xff0c;那么如何再把风扇声音变小呢&#xff1f;怎么减小笔记本风扇的噪音&#xff1f;是什么原因导致笔记本风扇声音变大&#xff1f;下面给大家介绍笔记本风扇声音变大的原因及其解决办法。原因&#xff1a;1、使用时间…

ML.NET 示例:对象检测-ASP.NET Core Web和WPF桌面示例

ML.NET 版本API 类型状态应用程序类型数据类型场景机器学习任务算法v1.5.0动态API最新端到端应用图像文件对象检测深度学习ONNX: Tiny YOLOv2 & Custom Vision问题对象检测是计算机视觉中的经典问题之一&#xff1a;识别给定图像中包含哪些对象以及它们在图像中的位置。对于…

120天的烧脑只为孩子设计一套教具~

小木研究了适合儿童学习计算机知识的书真的挺多&#xff0c;但是小木要推荐的这本真的是很接地气了&#xff0c;不管是热衷于研究技术的小机灵还是一说计算机逻辑就懵的小可爱们&#xff0c;看到这本萌萌哒电脑漫游记&#xff0c;都会忍不住对计算机越来越感兴趣。它深入浅出&a…

# 睡眠3秒_【for fun】睡眠排序算法

点击上方蓝字关注我&#xff0c;我们一起学编程有任何疑问或者想看的内容&#xff0c;欢迎私信前天我们一起看了猴子排序&#xff0c;今天我们再来看一个奇葩的排序方法&#xff1a;睡眠排序。所谓睡眠排序&#xff0c;就是为待排序数组的每一个元素 x 启动一个线程&#xff0c…

将U盘虚拟成软驱加载控制器驱动安装windows server 2003

转自: http://dengweihua1.blog.51cto.com/134932/293221仅支持9G&#xff0c;10G安装windows2003使用该软件后&#xff0c;U盘的数据会丢失&#xff01;使用该软件后&#xff0c;U盘将无法被Windows系统使用,恢复U盘在最下边。u 安装前的准备&#xff1a; 1. 按F2进入BIOS&…

超级智能玩具《小小机器人》首发|全新50种玩法,创造力之源

致砖《小小机器人》套装全新首发电动机械的完美结合先来看看视频过过眼瘾吧来自美国STEAM教育让孩子跨学科学知识积木向来是STEAM教育很重要的一部分&#xff0c;因为它涉及到了多种学科&#xff1a;要搭建得稳固——这是工程学&#xff1b;要精准搭建——这是数学&#xff1b;…

.NET Core with 微服务 - 什么是微服务

微服务是这几年最流行的架构&#xff0c;说起架构不提微服务都不好意思跟人家打招呼。最近想要再梳理一下关于微服务的知识&#xff0c;并且结合本人的一些实践经验来做一些总结与分享。前面会分享一些概念性的东西&#xff0c;后面也会使用.net来实践&#xff0c;一步步完成一…

雨棚板弹性法计算简图_钢结构工程量计算4点注意事项,还不来看?

一图纸&#xff1a;根据图纸目录&#xff0c;清理核对图纸数量&#xff0c;检查是否有遗漏。二建筑施工图1. 设计总说明 1.1 建筑面积、结构形式、柱距、跨度、结构布置情况&#xff1b;1.2 工程量计算的范围&#xff1a;关于结构、屋面、墙面、门窗等&#xff0c;清楚投标报价…

html注释的爱情故事,爱情故事”为你的婚礼贴上专属标签

这不是一场婚礼&#xff0c;而是彩虹之上的梦每个年轻的女孩都有一个多彩的梦&#xff0c;这个梦绚丽斑斓&#xff0c;若有天梦想实现&#xff0c;年轻的女孩子们是否会欣喜地大叫起来&#xff1f;为你的婚礼注入你自己的梦&#xff0c;贴上只属于你自己的“标签婚礼”吧&#…

震惊整个世界的新发现,科学界的大骗局

全世界有3.14 % 的人已经关注了数据与算法之美布朗洛和N射线闹剧继伦琴发现X射线后&#xff0c;1903年&#xff0c;法国科学院院士、物理学家布朗洛宣布他发现了N射线。法国科学院公布了这一“惊人发现”之后&#xff0c;兴起了一股研究N射线热潮&#xff0c;仅法国科学院院刊在…

TI-89T 教你在C程序里调用TI-BASIC程序,看看是否有人对这个感兴趣

2019独角兽企业重金招聘Python工程师标准>>> 教你在C 程序里调用TI-BASIC程序&#xff0c;看看是否有人对这个感兴趣 昨天翻TIGCC的文档&#xff0c;先瞅了瞅FAQ&#xff0c;话说我看文档有个习惯&#xff0c;就是先看目录&#xff0c;再看FAQ&#xff0c;因为FAQ汇…

利用计算机制作多媒体最后一步,福建省高中会考 多媒体技术应用 选择题专项练习十一(201206)(有答案)...

多媒体技术应用选择题专项练习十一(201206)1.下列都属于数字图像采集工具的是( )A.数码照相机、扫描仪B.麦克风、扫描仪C.打印机、数码照相机D.数码摄像机、打印机2.下列关于制作多媒体作品的叙述&#xff0c;不正确的是( )A.规划与设计是制作多媒体作品的重要步骤B.制作多媒体…

工程师和科学家有什么区别

全世界有3.14 % 的人已经关注了数据与算法之美科学家和工程师有什么不同&#xff1f;通常民众认为&#xff0c;工程师就是搞技术的&#xff0c;科学家就是搞科研的。对科学领域有一定认识的人群会说&#xff0c;工程师是应用科研成果的人&#xff0c;科学家是发现科学规律的人。…

聊一聊Jmeter与多接口测试

背景 前面两篇聊过了 JMeter 的 简单使用 和 参数化&#xff0c;主要都还是单接口的。很多时候&#xff0c;一个业务要走完&#xff0c;它会依赖多个接口&#xff0c;而且这些接口会有依赖性。好比说&#xff0c;我想查询一个订单信息&#xff0c;那么大前提肯定是我已经下单了…

大数据时代,还不认识这些数据分析工具?

在大数据时代的现今&#xff0c;数据庞大且繁杂&#xff0c;因此&#xff0c;如何有效利用它们&#xff0c;达到资源不浪费的目的成为了相关工作者思考的问题&#xff0c;于是数据分析就应运而生。在实际生活中&#xff0c;数据分析已经成为人们作出判断和采取行动的基石。比如…