先去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×tamp=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×tamp=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第三方登錄、代碼