开源第三方登录组件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节点下添加节点:
<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[].GenerateAuthorizationUrl("Test"));
}
}

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

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

开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台的更多相关文章
- 开源第三方登录组件OAuthLogin2.0 解析及开源地址
OAuthLogin2.0介绍地址: 博客地址:http://www.cnblogs.com/dazhuangtage/p/6306133.html Nuget地址:https://www.nuget ...
- 开源第三方登录组件OAuthLogin2.0 架构解析及开源地址
OAuthLogin2.0介绍地址: 入门地址:http://www.cnblogs.com/dazhuangtage/p/6306133.html Nuget地址:https://www.nuget ...
- OAuthLogin2.0
开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台 Nuget地址:https://www.nuget.org/packages/OAuthLogin ...
- OAuth2 通用组件源码下载(支持新浪微博、QQ、淘宝)(转载)
转载地址:http://www.cyqdata.com/download/article-detail-54302 OAuth2 社区通用组件说明: 源码为C#(.NET)写成,目前支持新浪微博. ...
- 鸿蒙开源第三方件组件——轮播组件Banner
目录: 1.功能展示 2.Sample解析 3.Library解析 4.<鸿蒙开源第三方组件>系列文章合集 前言 基于安卓平台的轮播组件Banner(https://github.com/ ...
- 第三方登录过程—OAuth2.0协议
---恢复内容开始--- 理清思路 1.在第三方注册成为开发者,拿到第三方给的client_id(app_id---就像你的身份证.QQ号)和client_secret(就像你的QQ密码): 2.填写 ...
- 方便代理下单的EcStore收货地址一键分析插件,同时支持淘宝/京东/一号店
使用EcStore开展分销的网站,代理需要经常代客下单,每个客户收货地址都不同,要选择和填写多个内容才能完成地址输入:省.市.区.详细地址.收货人姓名.手机电话等,非常麻烦,也容易输入错误.安装EcS ...
- 老牌开源Office操作组件NPOI现已支持.NET Core
昨天在微信群里听到老牌Excel开发利器NPOI的作者瞿总说4.6.1版本的NPOI已经支持.NET Standard 2.0了,这也就意味着你可以在.NET Core中使用NPOI了. 作者:依乐祝 ...
- QQ、淘宝、阿里旺旺在线网页链接代码及详解 很实用
你可直接到官网去生成代码,简单.方便,相信都能上网的你,对这不会有难度的,认识字的就行,赶紧去吧! 1.阿里旺旺官网: http://page.1688.com/html/wangwang/dow ...
随机推荐
- web.xml的启动顺序
1. context-param 2. Listener 3. Filter 4. servlet <?xml version="1.0" encoding="UT ...
- FMDB增删查改
创建,插入,更新和删除:使用executeUpdate方法,而查询则用executeQuery 1.实例化FMDatabase //paths: ios下Document路径,Document为ios ...
- The Willpower Instinct
https://book.douban.com/subject/7043452/ 1.冥想2.健康饮食(低GI.素食为主,未加工食物为主).低GI食物使血糖稳定(蛋白.麦片.粗纤谷类.豆类.水果蔬菜) ...
- CentOS 6.4 x64 zabbix 2.2.2 编译安装
A. 服务端安装配置 1.下载zabbix 2.x 最新版本 http://www.zabbix.com/download.php 2.安装配置所需要软件(zabbix需要一个lamp环境) 使用 y ...
- MySQL 索引的使用
一.or 的使用 (1)MySQL版本大于 5.x 的会使用 index merge 功能,即可以将多个单列索引集合起来使用,不过在查询时使用 or 的话,引擎为 myisam 的会开启 index ...
- (中等) HDU 3416 Marriage Match IV,SPFA+SAP。
Description Do not sincere non-interference. Like that show, now starvae also take part in a show, b ...
- jsoncpp第二篇------API
更多API参考jsoncpp头文件 1 jsoncpp的api简要说明 1,解析(json字符串转为对象) std::string strDataJson; Json::Reader JReader ...
- Web开发中需要了解的东西
在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需 ...
- 使用idea建立gradle+SSM项目
目录: 一.创建一个gradle项目 二 .在gradle中创建SSM项目 一 .创建一个gradle项目 第一步: 第二步:选择gradle,并选中web,然后点击Next进入下一步 第三步:此 ...
- js-权威指南学习笔记8
第8章 函数 1.参数有形参和实参的区别,形参相当于函数中定义的变量,实参是在运行时的函数调用时传入的参数. 2.函数表达式可以包含名称,这在递归时很有用. 3.函数定义表达式特别适合用来定义那些只会 ...