開源第三方登錄組件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[0].GenerateAuthorizationUrl("Test"));
        }
    }

獲取回調結果:

 public  ActionResult Index()
        {
            var palteFrom = Platform.Find(EtpName.QQ);
            var token=palteFrom.Applications[0].GetToken(System.Web.HttpContext.Current.Request);//GetToken支持異步獲取,異步方法為GetTokenAsync
            return Content(token.ToString());
        }

結果如下:

 

放上一張核心圖,詳細會在下篇講:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM