OAuth及第三方登陸

        如今的生活中運用互聯網的有好多地方,咱們既要申請微博,申請博客,申請郵箱等等;哪怕登陸一個小網址看點東西都要註冊登陸,不過如今好多了;有了第三方登陸,不再用擔憂這不夠用的腦子成天記憶帳號和密碼了,只要有qq,通常狀況下都能解決,既方便又快捷。php

        我呢,這幾天就開始接觸這個東西,開始學,一邊學一邊記吧算是。數據庫

    一.OAuth開放式受權安全

        OAuth  is  short  for Open  Authorization  網站

       這個東西是什麼呢,就是讓第三方網站在不知道用戶qq號和密碼的狀況下也能登陸。下面就用一個圖來講明一下它的運行機制吧spa

   

 

         其特色就是開放  安全   簡易code

  2、功能對象

OAuth1.0版本發佈於2007年底:該版本有缺陷,曾經由於這個缺陷使一個公司損失巨大,如今已經不用。blog

 

OAuth2.0版本發佈於2010年初:至今仍在使用。token

 

QQ用戶受權第三方網站使用其QQ帳號相關的信息生命週期

 

獲取受權後,在符合權限規則的狀況下訪問各類API;如一鍵分享。

 

第三方登陸並不會將用戶信息拷貝一份放在本身的數據庫,那樣你們都會以爲不安全了。只是利用了一個OAuth平臺來完成這個功能

 3、三個重要步驟

       第三方頁面請求QQ的OAuth頁面

          用戶在OAuth頁面輸入qq號和密碼

          騰訊QQ的OAuth頁面將登錄結果返回給第三方網站

      (1)、請求OAuth登陸頁  

                Request Token URL--未受權的令牌請求服務地址       

                第三方網站請求QQ登錄頁面時須使用帶有特定參數的URL。

                每一個第三方網站接入QQ登錄以前須要到QQ互聯官網註冊一下(https://connect.qq.com/),提交一份申請的材料。說明一下接入站點的描述,域名,回調地址等。經過以後會獲得一組APPID                          和APPKEY.

                例如如下地址:

               https://graph.qq.com/oauth/......?......&client_id=100493579&......&redirect_uri=http:/www.weibo.com/......

 

           這裏的clirnt_id對應的就是APPID。OAuth頁面能夠經過這個APPID來判斷這個站點是否是已經註冊過的平臺,並非每一個站點均可以使用。

     (2)、用戶使用QQ號登錄並受權

                上面的redirect_uri就是回調地址,在用戶登陸成功後跳轉的頁面。

                http://www.weibo,com/user.qqcallback?code=xxxxxxxxxxxxx.....


     (3)、返回登陸結果

                在php頁面能夠獲取上面地址中的code大體能夠肯定登陸了。可是爲了更加安全,因此須要第三方網站再次請求一個URL地址(用戶受權的令牌請求服務地址);用戶QQ登陸受權以後須要請求           的一個帶有特定參數的URL,這個URL中有參數APPID和APPKEY,又多了一個第三方站點與騰訊QQ的OAuth頁面的交互,使code的傳輸更加安全。(code在有限時間內有效,通常時間不超過一分鐘)

 4、AccessToken

          當登陸以後第三方站點拿到一個當前用戶的AccessToken,有這個AccessToken就能夠調用相應的API了。每次訪問API都要拼接一個URL,而且都要用上AccessToken做爲令牌,爲了安全也通常會         用POST方式。

          

     能夠將返回的數據用如下方法轉換成PHP對象

             

             AccessToken--具備較長生命週期(10天或者更長)

             過時以後有兩種方法從新獲取:

             1.從新用qq號登陸

             2.User Authorization URL中指定參數  ....&need_refresh_token=true&......意爲在返回結果中須要攜帶一個AccessToken。

 

         更加專業的術語我就不照搬了,我按照我理解的方式簡單的說了一下這個第三方登陸的前奏,想了解更多的OAuth知識的話能夠

        戳這裏-->http://wiki.connect.qq.com/oauth2-0%E7%AE%80%E4%BB%8B

       關於第三方登陸我還會繼續添加內容的,這只是個開始哦

相關文章
相關標籤/搜索