MrHuo.OAuthLoginLibs社会化登录组件Github
今日写的博客
[原创]旧事重提:只配置参数实现OAuth2登录
引来很多园子里的朋友问候,所以今日花了一些时间整理了代码。
现已发布至github:
MrHuo.OAuthLoginLibs:https://github.com/mrhuo/MrHuo.OAuthLoginLibs
MrHuo.OAuthLogin.QQApis:https://github.com/mrhuo/MrHuo.OAuthLogin.QQApis
MrHuo.OAuthLoginLibs项目内的OAuthLoginDLLs是编译好的最新dll。
欢迎朋友们共同努力让这个组件走得更远。
先说下代码结构:
一、引用:

代码中使用了RestSharp作为网络访问。
关于RestSharp的介绍可以看(善友兄的)这篇文章:http://www.cnblogs.com/shanyou/archive/2012/01/27/RestSharp.html
代码中使用了DynamicJson作为Json解析。为什么选择此组件,因为他可以序列化对象为dynamic,而不用新建对象。
-------------------------------不美的分割线-----------------------------------------
二、代码图:

可以看出核心就是interfaces和core。此版本中包含中文简体、中文繁体、英文的资源文件。
-------------------------------不美的分割线-----------------------------------------
再看看core程序集的代码图:

1、AuthStateManager维护了一个内部的状态机,为了验证每次OAuth验证时带给第三方平台的状态。
2、AuthConfigManager管理已配置的配置文件。
3、OAuthToken是一个通用的Token基类,可根据不同平台继续扩展,目前已基本无需改动。
4、OAuthLoginResult是OAuth验证结果类。
5、OAuthContextBase<TOAuthToken, TUserInfo>是获取用户信息的上下文,是个抽象类。
具体实现参照这个项目MrHuo.OAuthLogin.QQApis
6、核心类就是OAuthLogin,只需要运用这一个类就可以执行OAuth登录了。
我在对象浏览器里截了张图:

-------------------------------不美的分割线-----------------------------------------
三、使用代码可以参考文头的文章。
看看使用效果:
1、QQ登录:

2、Sina效果:

3、Baidu效果:

其他登录因笔者没有申请到合适的key,所以无法得知结果如何。还请各位园子里的园友验证后告诉我。
四、其实OAuth登录到此还未完毕,接下来做的事就是,把获取到的用户的openid保存到数据库,创建一个网站内部用户和openid绑定。
接下来的工作就靠大家了。希望大家能喜欢这个组件。 just fork it.
联系方式:http://www.mrhuo.com
qq:491217650
MrHuo.OAuthLoginLibs社会化登录组件Github的更多相关文章
- 社会化登录分享-Android SDK的二次封装和使用
本系列文章将第三方的登录分享功能进行二次封装,统一接口调用,简化了接不同平台登录分享的步骤. 0 系列文章 系列一 Android SDK的二次封装和使用 系列二 源码解析 系列三 微信SDK接入 系 ...
- Xamarin.Android 绑定友盟社会化分享组件
Xamarin.Android 绑定友盟社会化分享组件 最近在开发博客园Android App的时候需要用到友盟社会化分享组件,在github上搜了一下都没有找到最新版本绑定好的项目,就自己动手来绑定 ...
- 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件
实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...
- React使用笔记2--创建登录组件
文章目录 最近在学习使用React作为前端的框架,<React使用笔记>系列用于记录过程中的一些使用和解决方法.本文记录搭建登录页面的过程. 根据产品规划划分模块 主要页面逻辑 在这里,本 ...
- 开源第三方登录组件OAuthLogin2.0 解析及开源地址
OAuthLogin2.0介绍地址: 博客地址:http://www.cnblogs.com/dazhuangtage/p/6306133.html Nuget地址:https://www.nuget ...
- rest_framework登录组件,权限组件
昨日回顾: -HyperlinkedIdentityField(用来生成url),传三个参数 -实例化序列化类的时候,BookSerializer(ret, many=True, context={' ...
- 开源第三方登录组件OAuthLogin2.0 架构解析及开源地址
OAuthLogin2.0介绍地址: 入门地址:http://www.cnblogs.com/dazhuangtage/p/6306133.html Nuget地址:https://www.nuget ...
- 6、Selenium+Python登录案例 -- Github
一:登录 1.指定浏览器,打开网址:https://github.com/login 2.设置等待时间: time.sleep(3) or driver.implicitly_wait(3) 3.输入 ...
- JS /CSS 实现模态框(注册和登录组件)
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
随机推荐
- android slidingview
http://blog.csdn.net/sky181772733/article/details/6969810 http://blog.csdn.net/ithomer/article/detai ...
- 用Altium designer画PCB的一般心得
一.电路版设计的先期工作 1.利用原理图设计工具绘制原理图,并且生成对应的网络表.当然,有些特殊情况下,如电路版比较简单,已经有了网络表等情况下也可以不进行原理图的设计,直接进入PCB设计系统,在PC ...
- 红外 IR 协议原理分析
1.概述:对多种红外遥控器的信号进行分析,其发出的红外指令中,引导码各不相同,而且后面的控制指令也有较大差别,甚至指令码的位数也不相同,原因是这些红外设计没有遵守相同的红外标准.但是其基本思想是相同的 ...
- Linux 硬连接和软连接的原理 (in使用)
引子 目前,UNIX的文件系统有很多种实现,例如UFS(基于BSD的UNIX文件系统).ext3.ext4.ZFS和Reiserfs等等. 不论哪一种文件系统,总是需要存储数据.硬盘的最小存储单位是扇 ...
- 读书笔记:java并发
java中主要的同步机制是关键字synchronized,它提供一种独占锁,但是 同步这个术语还包括validate类型的变量,显示锁(Explicit Lock)以及原子变量. -------显示锁 ...
- 合并多个excel工作簿
合并多个Excel工作簿,会出现电话号码以科学计数法显示,如果想要以字符串方式处理,要按如下完整代码 public static void mergeWorkBook() throws Excepti ...
- NetAnalyzer笔记 之 五 一些抓包技巧分享(不定期更新)
[创建时间:2016-03-12 10:00:00] [更新时间:2016-05-21 10:00:00] NetAnalyzer下载地址 前一段时间应为工作关系,NetAnalyzer笔记系列已经很 ...
- 使用markdown语法撰写csdn博客
在CSDN之下写blog无疑是一件非常吃力的事情,对于非常多simple爱好者来讲,能用markdown语法来书写代码是最优雅简洁只是的了.本文主要介绍markdown语法和怎样它来撰写csdn下的b ...
- [IOI1999]花店橱窗布置(DP路径记录)
题目:[IOI1999]花店橱窗布置 问题编号:496 题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V ...
- Android UI开发详解之ActionBar .
在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果. 一.添加A ...