程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> MrHuo.OAuthLoginLibs社會化登錄組件Github,githuboauth

MrHuo.OAuthLoginLibs社會化登錄組件Github,githuboauth

編輯:C#入門知識

MrHuo.OAuthLoginLibs社會化登錄組件Github,githuboauth


今日寫的博客

[原創]舊事重提:只配置參數實現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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved