近幾日因爲公司業務須要,要作一個網站的第三方登錄,而且登錄以後並進行驗證,只有登錄過咱們手機app的第三方帳號才能夠登錄網站。正則表達式
這邊先說下oauth2.0大概的流程吧:json
第三方登錄入口->跳轉連接->在第三方輸入帳號和密碼登錄->第三方調用回調函數返回給你一個code之類的->拿code請求access_token->拿access_token請求到惟一標識的openid或者uid之類的api
- 首先作的是qq,看了下文檔,其實咱們的需求沒有文檔上的那麼複雜,只是登錄一下獲取openid而後拿回來驗證就行了。我這邊作的是按照網上的一個資料直接請求一個連接就進入第三方的登錄入口了,而後就是按照上面的流程拿到openid。當我測試時,拿請求到的openid去和咱們app拿到的openid比較發現不同的,而後我檢查了下我拿到的那個openid,請求其餘的接口api,發現是OK的。這我就納悶了,問app那邊,他們說是沒有對openid進行任何處理。只能百度,發現騰訊對於網站登錄和手機app登錄拿到的openid是不同的,若是要想同樣得寫申請信給connect@qq.com,簡直就是蛋疼。還有一點要吐槽的,請求access_token之類的接口時,騰訊返回的不是一個json串的,而是好比「access_token=FE04************************CCE2&expires_in=7776000。」之類的字符串,須要開發者本身解析的,並且請求openid時,返回的結果是callback(****)的字符串,還須要用到正則表達式的,簡單讓我調試了半天(樓主正則不太好)這接口真心想吐槽啊,返回格式太老了,都不更新的。並且騰訊應用信息裏面的測試帳號是最後一欄信息!這麼重要的信息竟然放最後一欄,一不當心沒注意- -,也是因爲我第一次開發第三方登錄
- 微博登錄,首先就是測試帳號的編輯,有專門一欄,我感受比較好,容易找到。返回的都是json串,比較方便。並且第二部請求access_token時就已經返回給你uid了,也是和手機端同樣的,直接打通手機應用的關聯。
- 騰訊和微博的審覈時間都差很少,說是1個工做日,基本我都是2個工做日。騰訊的那個郵箱,我發了郵件過去,沒人回的,還不如上次微信開發的。看來騰訊QQ這邊真的有點落寞了!