php+Oauth認證

 先去qq互聯申請:app_id  app_keyphp

官方:前端

  step1:放置qq登錄按鈕web

  step2:獲取authorization code後端

  step3:經過authorization code 獲取 access tokenapi

  step4: 經過access token獲取 open id值服務器

  step5:用access token和open id 去訪問和修改用戶數據app

 

概況:網站

   client 訪問 web上的qq登錄,點擊,進入web封裝後的url,即帶上app_id+callback+status,這個url跳轉到qq得,此時,呈如今用戶 面前的是跳轉後的qq登錄頁,用戶在當前qq頁面輸入用戶名密碼登錄(此時是qq域名下,和咱們的web無關),點擊確認,進入qq後臺驗證後,qq服務 器回跳至 web的callback接口,咱們的callback獲取authorization code,而後再用url

authorization code + app_id + app_key+ status+redirect_url  去qq服務器獲取access code 。 而後再用 access code去獲取open_id.....spa

 

 網頁上第一步: //網站本身包裹了一層

  href="http://www.discuz.net/connect.php?mod=login&op=init&referer=forum.php&statfrom=login_simple" 

  網站內部跳轉:

  /Users/登陸名/Sites/cosbbs/source/plugin/manyou/Service/Client/ConnectOAuth.php   //discuz內部的實現

跳轉到: //內部真正的跳轉後到qq的頁面,由該頁面 輸入qq用戶名密碼, 登錄成功後,回調咱們web的接口,咱們web接口拿到oauth_token再次去請求qq的接口

  http://openapi.qzone.qq.com/oauth/qzoneoauth_authorize?oauth_consumer_key=10000034&oauth_token=9834503974295315228 //咱們拿到oauth_token,而後再去qq接口,你看qq.com域名

回調: //回調

  http://www.discuz.net/connect.php?receive=yes&mod=login&op=callback&referer=forum.php&oauth_token=9834503974295315228&openid=3037BB9E81C35433B45AA5BE0A575783&oauth_signature=c0vCneKTloXpW3PzxSOc1jDKhQ4%3D&oauth_vericode=1094966219&timestamp=1428308280

回調完了,自動跳轉到:

  http://www.discuz.net/forum.php     //登錄完成

http://www.discuz.net/connect.php?receive=yes&mod=login&op=callback&referer=forum.php&oauth_token=13940165893393575304&openid=3037BB9E81C35433B45AA5BE0A575783&oauth_signature=JYlMSEZ5a%2FAxYWfG6MITshWgYVs%3D&oauth_vericode=87598391&timestamp=1428309036

 

 

 

//qq的路徑:

    先前端或後端跳轉到qq登陸框,這個跳轉是帶上appid的,(appid是申請到的,讓qq知道你是哪一個web)

      private $_requestTokenURL = 'http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token'; //帶上appid去qq登陸框頁面

      private $_oAuthAuthorizeURL = 'http://openapi.qzone.qq.com/oauth/qzoneoauth_authorize'; //獲取 authorize token

      private $_accessTokenURL = 'http://openapi.qzone.qq.com/oauth/qzoneoauth_access_token'; //帶上authorize token去請求獲取access token  

      private $_getUserInfoURL = 'http://openapi.qzone.qq.com/user/get_user_info';  //獲取用戶信息

相關連接:

  http://connect.qq.com/  //qq第三方登錄、代碼

相關文章
相關標籤/搜索