开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台

 

Nuget地址:https://www.nuget.org/packages/OAuthLogin2.0/

项目结构说明:

AuthorizationProviders文件夹下主要存放内置的授权平台。

CustomException文件夹主要存放各个平台对应的错误处理机制。

说下涉及到的几个名词:

平台:

  定义一个数据结构,用于规范外部交易平台名称。名称是业务系统为Etp分配的唯一标识,由不限长度的字符组成。由于极易发生拼写错误,强烈建议在程序中采用如下规范写法:

  (1)需要使用某一平台的名称字符串时,应使用其对应的静态字段获取实例,然后使用Name字段获取名称字符串;

  (2)需要对一个名称字符串进行处理时,应先使用FromString方法获取其对应的实例,然后使用相应的实例方法进行处理;

  (3)扩展机制:如果开发人员要使用未预定义的平台,可以定义自己的枚举器,使用静态字段存储Etp实例。

应用:

  描述平台中的应用,存储该应用的基本接口信息。

  应用是平台用来管理接口调用权限的机制。业务系统方要访问平台接口必须先申请一个应用,经平台方审核通过后才具有调用相应接口的权限。

使用教程:

  Nuget安装:Install-Package OAuthLogin2.0

配置文件修改如下:

1:在configSections中添加节点:

<configSections>
<section name="OAuthLogin" type="OAuthLogin.OAuthLoginConfig,OAuthLogin2.0" />
</configSections>

2:在configSections节点下添加节点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<OAuthLogin>
  <etps>
    <etp name="qq" authorizationUrl="https://graph.qq.com/oauth2.0/authorize" tokenUrl="https://graph.qq.com/oauth2.0/token" apiUrl="https://graph.qq.com/oauth2.0/me">
      <apps>
        <add appkey="" secret="" redirectUrl="" />
      </apps>
    </etp>
  </etps>
  <AuthorizationProviders>
    <add etp="qq" type="OAuthLogin.QQAuthorizationProvider" assembly="OAuthLogin2.0" />
  </AuthorizationProviders>
  <EtpExceptionBuilders>
    <add etp="qq" type="OAuthLogin.QQExceptionBuilder" assembly="OAuthLogin2.0" />
  </EtpExceptionBuilders>
</OAuthLogin>

  

跳转到授权URL:

public class HomeController : Controller
{
public ActionResult Index()
{
var platform = Platform.Find(EtpName.QQ);
return Redirect(platform.Applications[0].GenerateAuthorizationUrl("Test"));
}
}

获取回调结果:

 public  ActionResult Index()
{
var palteFrom = Platform.Find(EtpName.QQ);
var token=palteFrom.Applications[0].GetToken(System.Web.HttpContext.Current.Request);//GetToken支持异步获取,异步方法为GetTokenAsync
return Content(token.ToString());
}

结果如下:

放上一张核心图,详细会在下篇讲:

OAuthLogin2.0的更多相关文章

  1. 开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台

    Nuget地址:https://www.nuget.org/packages/OAuthLogin2.0/ 项目结构说明: AuthorizationProviders文件夹下主要存放内置的授权平台. ...

  2. 开源第三方登录组件OAuthLogin2.0 解析及开源地址

    OAuthLogin2.0介绍地址: 博客地址:http://www.cnblogs.com/dazhuangtage/p/6306133.html Nuget地址:https://www.nuget ...

  3. 开源第三方登录组件OAuthLogin2.0 架构解析及开源地址

    OAuthLogin2.0介绍地址: 入门地址:http://www.cnblogs.com/dazhuangtage/p/6306133.html Nuget地址:https://www.nuget ...

  4. ZAM 3D 制作简单的3D字幕 流程(二)

    原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...

  5. ZAM 3D 制作3D动画字幕 用于Xaml导出

    原地址-> http://www.cnblogs.com/yk250/p/5662788.html 介绍:对经常使用Blend做动画的人来说,ZAM 3D 也很好上手,专业制作3D素材的XAML ...

  6. 微信小程序省市区选择器对接数据库

    前言,小程序本身是带有地区选着器的(网站:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html),由于自己开发的程序的数据是很 ...

  7. osg编译日志

    1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> Checking Build System1> CMake do ...

  8. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  9. Elasticsearch 5.0 中term 查询和match 查询的认识

    Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...

随机推荐

  1. [C++11新特性]第二篇

    0.可变数量参数,可变函数模版,变长模版类 c++98可变数量参数 #include<cstdio> #include<cstdarg> double SumOfFloat(i ...

  2. HDU-6035:Colorful Tree(虚树+DP)

    这里有三道长得像的题: 一:HDU6036: There is a tree with nn nodes, each of which has a type of color represented ...

  3. 关于redis,学会这8点就够了

    1,redis是什么 redis是一种支持Key-Value等多种数据结构的存储系统.可用于缓存,事件发布或订阅,高速队列等场景.该数据库使用ANSI C语言编写,支持网络,提供字符串,哈希,列表,队 ...

  4. HL7 V2 分隔符

    Delimiter Characters Character Purpose 0x0D Marks the end of each segment. | Composite delimiter. ^ ...

  5. xml解析中的sax解析

    title: xml解析中的sax解析 tags: grammar_cjkRuby: true --- SAXPasser 类: parser(File file, DefaultHandler ha ...

  6. caffe c++

    http://blog.csdn.net/yao_zhuang/article/details/1853625

  7. Eclipse插件:tomcatPluginV33.zip 安装

    一.下载 地址:http://www.eclipsetotale.com/tomcatPlugin.html 二.安装 1.解压tomcatPluginV33.zip到Eclipse的\feature ...

  8. 04_数据库升级onUpgrade&ondowngrade

    如果想操作多个数据库就不要把数据库的名字写死了 public MyOpenHelper(Context context, String name){ //第一个参数上下文 //第二个参数 数据库的名字 ...

  9. [poj3071]football概率dp

    题意:n支队伍两两进行比赛,求最有可能获得冠军的队伍. 解题关键:概率dp,转移方程:$dp[i][j] +  = dp[i][j]*dp[i][k]*p[j][k]$表示第$i$回合$j$获胜的概率 ...

  10. NCBI SRA数据库

    简介 SRA数据库是美国国立卫生研究院(NIH)的高通量测序数据的主要归档,是国际核苷酸序列数据库协作(INSDC)的一部分,其中包括NCBI序列读取存档(SRA),欧洲生物信息学研究所(EBI)和D ...