QQ登入OAuth2.0的處理流程
QQ登入OAuth2.0的處理流程主要包括以下三個步驟:
1. 取得access_token;
2. 根據access_token取得對應使用者身分的openid;
3. 根據access_token與openid呼叫OpenAPI,來請求存取或修改使用者授權的資源(例如使用者資料,日誌,相冊,說說等資訊)。
為方便網站快速接入,QQ登入提供了JS SDK,貼上程式碼到網頁,即可實現QQ登入功能。
為方便行動應用程式快速接入,QQ登入提供了Android SDK和IOS SDK,應用程式只需要修改少量程式碼,即可快速實現QQ登入功能。
Step1:取得access_token
#QQ登入OAuth2.0針對網站、行動應用程式、桌面應用程式分別提供了不同的登入驗證與授權流程,目前提供以下2種取得access token的方式:
1. server-side模式
即OAuth官方文件中提到的Authorization Code模式,適用於需要從web server存取的應用。
2. client-side模式
即OAuth官方文件中提到的Implicit模式,適用於需要透過客戶端存取的方式。
以上兩種模式僅在取得access_token時有所區別,後續取得openid、呼叫API等方式均相同。
登入成功後,開發者會得到表示此登入資訊的access token,此參數在存取使用者授權資訊中會用到。
access token由每次用戶登入時生成,過期時間預設為三個月,用戶再次登入時自動刷新。
Step2:根據access_token取得對應使用者身分的openid
##請求位址:PC網址:https://graph.qq.com/oauth2.0/me
WAP網址:https://graph.z.qq.com/moc2/me
請求方法:GET
#請求參數:
PC網站接取時,取得到使用者OpenID,回傳套件如下:
openid是此網站上唯一對應使用者身分的標識,網站可將此ID進行儲存便於使用者下次登入時辨識其身份,或將其與使用者在網站上的原有帳號進行綁定。
錯誤碼說明:
介面呼叫有錯誤時,會傳回code和msg字段,以url參數對的形式傳回,value部分會進行url編碼( UTF-8)。
PC網站接取時,錯誤碼詳細資料請參考:100000-100031:PC網站存取時的公共回傳碼。
WAP網站存取時,錯誤碼詳細資訊請參考:9000-9999:根據Access Token取得對應使用者身分的openid時,發生錯誤。
Step3:呼叫OpenAPI,來請求存取或修改使用者授權的資源
呼叫OpenAPI時需要用到如下3個值:
YOUR_APP_ID:即申請QQ登入成功後分配的appid(如222222)
YOUR_ACCESS_TOKEN:Step1取得的access token,必須保證未過期(如E0632E6CE12AC709999)
YOUR_OPENID:Step2取得到的openid,使用者唯一識別(如B95387D1