在日常開發中越來越多的使用到微信開放平臺的OAuth授權認證實現登錄邏輯,這樣即能快速的開發,又能依托于微信帝國的強大用戶量來實現用戶轉化。但是從網站方出發點看,我們可以做更多事情,更好與用戶進行交互,以便更高效的轉化用戶。
微信開放平臺登錄
傳統的微信開放平臺登錄的流程為:
- 掃描二維碼
- 在手機端微信確認登錄
- 接收到微信消息提醒
就是這個第三步對于我們是在是沒什么用處,如果這里收到的是我們定制的一些信息那就太棒了,比如說登錄成功后用戶接收到一些網站方的推廣信息。
微信公眾號平臺登錄
下面我們就利用公眾號平臺的網頁授權機制來實現登錄功能:
如果用戶在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯。
- 分配登錄二維碼:
因為微信網頁授權是沒有二維碼掃描的步驟的,所以二維碼要自己生成。又因為,整個登錄流程中涉及的到三方設備(Server、手機、web),導致session無法得到共享,所以要分配身份標識(本例中使用uuid)。 - web 端進行長輪詢
當手機進行掃碼動作時,導致web端的進程中斷,服務端無法通知瀏覽器登錄狀態,所以web端瀏覽器要和Server端保持長連接(推薦使用websocket)進行通訊。 - 手機端微信掃碼
- 手機微信內顯示登錄成功后的網頁
這四步中其實主要問題就在于如何進行手機和web的session映射,進而使用長連接通知瀏覽器登錄狀態。當登錄成功后,我們可以自主的向用戶推送我們想要用戶看到的頁面。