Web 掃碼登入實作
基於 Workerman做了一個掃碼登入範例,給有需要的朋友參考一下。發現問題,歡迎指正。
實作流程圖
#執行流程
①:使用者A 存取微信網頁版,微信伺服器為這個會話產生一個全域唯一的ID,上面的URL 中obsbQ-Dzag== 就是這個ID,此時系統並不知道訪客是誰。
②:用戶A開啟自己的手機微信並掃描這個二維碼,並提示使用者是否確認登入。
③:手機上的微信是登入狀態,使用者點擊確認登入後,手機上的微信客戶端將微信帳號和這個掃描得到的ID 一起提交到伺服器
④:伺服器將此ID 和使用者A 的微訊號綁定在一起,並通知網頁版微信,這個ID 對應的微訊號為使用者A,網頁版微信載入使用者A 的微信訊息,至此,掃碼登入全部流程完成。
掃碼登入看起來很神奇,主要是因為微信APP 掃自家的碼會做一些普通二維碼軟體不會做的額外的操作,那就是將目前已登入的微信和掃出來的ID 提交到微信伺服器,類似的應用程式還有掃碼支付、掃碼加公眾號等功能。
以上內容來自網路。
說明
基於workerman/gateway 框架編寫. web服務也可以使用 apache, nginx來取代。掃碼工具我用的手機掃碼來取代的,也可直接取得到一個url,放到另一個瀏覽器視窗模擬掃描二維碼的過程。生產環境一定是用app掃描的。
取得範例原始碼
https://github.com/wanglelecc/workerman-qrcode-login-for-win
執行範例(Win)
#在windows 下雙擊login_start_for_win.bat 即可
放1張預覽圖:
註:這只是一個範例,給大家一個想法。真正的使用,還有很多需要改進的地方。
以上是基於 Workerman實現Web掃描登入的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!