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> ...
随机推荐
- jQuery学习资源参考教程网址推荐
jQuery官方主页:http://jquery.comjQuery中文入门指南:http://www.k99k.com/jQuery_getting_started.htmljQuery使用手册:h ...
- python学习第十天 -- 函数
稍微学过其他编程语言的人都应该了解函数的概念.在这里就不做过多的介绍. Python内置了很多有用的函数,我们可以也直接调用. 可以直接从Python的官方网站查看文档: http://docs.py ...
- 需要熟悉的几个调试命令:objdump/pmap/ldd/stace
最近要编译很多库,还涉及到若干进程操作,所以就把相关的命令记录下来. 一,objdump命令 该命令适用于ELF可执行文件,常用的命令如下: objdump -h xx.o : 输出ELF文件的各个段 ...
- 一个ajax实现表单上传文件的神器 formdata
通过传统的form表单提交的方式上传文件: $.ajax({ url : "http://localhost:8080/STS/rest/user", type : "P ...
- Chaos Software Google Sync v10.1.1.0 和Syncovery Pro
Chaos Software Google Sync v10.1.1.0 Release: Chaos.Software.Google.Sync.v10.1.1.0.Incl.Keygen-BEANS ...
- DateTime字段控件值显示短格式的做法
后台取dateTime格式,前台格式化就好了 <input type="text" name="txtPartyTime" id="txtPar ...
- Apache+php配置 Mysql安装出错解决办法
此文包括的注意内容:软件版本及下载地址Apache2.4的配置和安装php7.0的配置mysql5.5的安装常见问题及解决方法1.软件版本Windows server 2008 r2+ 64位Apac ...
- hdu 3836 Equivalent Sets(tarjan+缩点)
Problem Description To prove two sets A and B are equivalent, we can first prove A is a subset of B, ...
- PHP设计模式笔记七:观察者模式 -- Rango韩老师 http://www.imooc.com/learn/236
观察者模式 概述: 1.观察者模式(Observer),当一个对象状态发生改变时,依赖他的对象全部会收到通知,并自动更新 2.场景:一个事件发生后,要执行一连串更新操作,传统的编程方式,就是在事件的代 ...
- 【CSS3】横屏引导小动画
演示地址:http://codepen.io/anon/pen/oXbXdX 主要知识点: @media all and (orientation : landscape) { /* 这是匹配横屏的状 ...