最近在弄一個web即時通訊,裡面有一個掃碼登入功能。以前沒做過,求有方面的高手談談。
如二維碼怎麼來的,web端如果監聽手機掃碼成功,並服務端發送過資料
最近在弄一個web即時通訊,裡面有一個掃碼登入功能。以前沒做過,求有方面的高手談談。
如二維碼怎麼來的,web端如果監聽手機掃碼成功,並服務端發送過資料
<code>步骤 WEB平台 手机 第1步 生成二维码 第2步 (ajax监控后台) 扫码 第3步 (ajax监控后台) 确定(后台异步通知WEB平台) 第4步 AJAX发现状态改变,登陆成功 </code>
ajax監控後台的流程:產生二維碼後,
<code>setTimeout(function(){ //AJAX请求,检测状态 },5000); </code>
樓上說的很正確。我補充一下吧。
以微信為例
解決兩個問題,電腦從伺服器取得是否有人掃了我這台電腦,並且授權登入。
然後app,要解決的是掃了之後,知道掃的人是誰,把這個人資訊告訴給伺服器。
物件網址 手機開啟微信
流程
web生成鏈接,鏈接製成二維碼,一般用本地的cookies或者sessionid作為唯一表示的參數。
app掃完之後,其實是進行授權操作,抓取用戶信息,把用戶信息跟請求中包含的cookies或者sessionid存到庫裡面
web每隔幾秒ajax請求後台,查詢當前cookies或sessionid是否有對應的登入訊息,有則進行登入操作。
1.前端呼叫後台產生二維碼的API,取得到二維碼圖片和所包含的資訊(通常是一個唯一ID)
2.前端偵測(透過輪詢或websock,自己選擇)是否有手機掃碼,透過呼叫後台介面API,參數為上面的唯一ID
3.手機掃描二維碼登陸,手機端可以獲取到二維碼裡的信息ID,帶上當前登陸用戶ID和二維碼裡的ID呼叫後台介面。
後台儲存這個二維碼的數據,加上登入使用者訊息,當前台呼叫API時,給返回登入成功。
4.前端取得到登入成功,進行跳轉