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,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台的更多相关文章

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

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

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

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

  3. OAuthLogin2.0

    开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台   Nuget地址:https://www.nuget.org/packages/OAuthLogin ...

  4. OAuth2 通用组件源码下载(支持新浪微博、QQ、淘宝)(转载)

    转载地址:http://www.cyqdata.com/download/article-detail-54302 OAuth2 社区通用组件说明:   源码为C#(.NET)写成,目前支持新浪微博. ...

  5. 鸿蒙开源第三方件组件——轮播组件Banner

    目录: 1.功能展示 2.Sample解析 3.Library解析 4.<鸿蒙开源第三方组件>系列文章合集 前言 基于安卓平台的轮播组件Banner(https://github.com/ ...

  6. 第三方登录过程—OAuth2.0协议

    ---恢复内容开始--- 理清思路 1.在第三方注册成为开发者,拿到第三方给的client_id(app_id---就像你的身份证.QQ号)和client_secret(就像你的QQ密码): 2.填写 ...

  7. 方便代理下单的EcStore收货地址一键分析插件,同时支持淘宝/京东/一号店

    使用EcStore开展分销的网站,代理需要经常代客下单,每个客户收货地址都不同,要选择和填写多个内容才能完成地址输入:省.市.区.详细地址.收货人姓名.手机电话等,非常麻烦,也容易输入错误.安装EcS ...

  8. 老牌开源Office操作组件NPOI现已支持.NET Core

    昨天在微信群里听到老牌Excel开发利器NPOI的作者瞿总说4.6.1版本的NPOI已经支持.NET Standard 2.0了,这也就意味着你可以在.NET Core中使用NPOI了. 作者:依乐祝 ...

  9. QQ、淘宝、阿里旺旺在线网页链接代码及详解 很实用

    你可直接到官网去生成代码,简单.方便,相信都能上网的你,对这不会有难度的,认识字的就行,赶紧去吧!   1.阿里旺旺官网: http://page.1688.com/html/wangwang/dow ...

随机推荐

  1. Mysql(集群)业务水平切割 垂直切割(Amoeba)

     Amoeba原理戳这里:Amoeba详细介绍 需要根据企业 数据业务进行切割,垂直切割又称为纵向切割. 垂直切割通说的说就是有多个表,对表进行分离(用户数据.博客文章数据.照片数据.标签数据类型.群 ...

  2. E/WindowState(643): getStack: Window{33f867f8 u0 Starting com.xxxxxx.ooooo}

    Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% ...

  3. Nginx http_user_agent 防御 ab 等

    日志出现大量: xxxxxxxxxxxxx - - [04/Jul/2013:23:37:49 +0800] "GET /1000.html HTTP/1.0" 200 56471 ...

  4. (简单) HUST 1017 Exact cover , DLX+精确覆盖。

    Description There is an N*M matrix with only 0s and 1s, (1 <= N,M <= 1000). An exact cover is ...

  5. webservice-概念性学习(一)

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 学习webservice之前呢,我想说我们先学习以下的知识,对你以后的学习 ...

  6. NSURLRequest POST方式请求服务器示例

    http://lizhuang.iteye.com/blog/1833297 1.  准备阶段 NSString *urlString = [NSString stringWithFormat:@&q ...

  7. VS2010环境下用ANSI C创建DLL和使用方法(转)

    源:VS2010环境下用ANSI C创建DLL和使用方法 . 创建DLL工程 1.2 创建一个dll工程. 操作:a.文件->新建->项目->Win32控制台应用程序. b.输入工程 ...

  8. BZOJ 1497 [NOI2006]最大获利 ——网络流

    [题目分析] 最大权闭合子图. S到集合1容量为获利的大小,集合2到T为所需要付出的相反数. 然后求出最大流,然后用总的获利相减即可. [代码] #include <cstdio> #in ...

  9. java实现——004替换空格

    1.创建新的字符串 public class T004 { public static void main(String[] args){ System.out.println(replaceBlan ...

  10. Java XML解析器

    使用Apache Xerces解析XML文档 一.技术概述 在用Java解析XML时候,一般都使用现成XML解析器来完成,自己编码解析是一件很棘手的问题,对程序员要求很高,一般也没有专业厂商或者开源组 ...