1. 程式人生 > >二維碼掃描登陸的原理及深入解析

二維碼掃描登陸的原理及深入解析

一、單方掃描登陸

  基本的實現流程: 

  1. PC端開啟login.html,ajax請求passport.wx.com?appid=123&redirect_uri=monitor.wx.com,服務端響應帶有uuid=456和狀態碼200的內容,再次發起兩個ajax請求,一個長輪詢/長連線請求monitor.wx.com/is_associate?uuid=456監聽服務端uuid是否被關聯,一個請求passport.wx.com/getQrCode?uuid=456獲取二維碼
  2. 掏出手機,掃描二維碼,讓使用者確認“是否把uuid和代表使用者資訊的openid”關聯
  3. APP端確認登入,傳送請求confirm.wx.com?uuid=123&openid=789,服務端正式關聯({'123': '789'})
  4. PC端在login.html的長輪詢/長連線請求終於監聽到服務端正式關聯,拿到重定向響應monitor.wx.com/is_associate?uuid=456&openid=789
  5. PC端在login.html傳送拿到的monitor.wx.com/is_associate?uuid=456&openid=789請求,服務端傳送set_cookie進行設定cookie

二、第三方登入

不過就是多了箇中間者(第三方),只需把第三方openid與我方的openid關聯就行了。

openid:只是代表著使用者資訊的憑據而已

三、長輪詢和長連線的實現

https://www.cnblogs.com/hoojo/p/longPolling_comet_jquery_iframe_ajax.html