打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

曾宇平 dotNET跨平台 今天

目录:

一、通过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,这时候再次点击图标,我们会跳转至百度的授权页

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

相关文章:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
c/c++多线程
百度云
百度IM上线前的用户摸底调查
3分钟学会微信文章加语音,自动回复设置超链接(新技能)
放大招,妈妈再也不担心资源下载了
【网络学习资源】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服