實作用戶端掃碼登入分為下列四步:
1. Web頁面生成二維碼
生成的二維碼中必須要包含一個用于唯一辨別使用者的資料,這個唯一辨別是為了確定将用戶端(手機)與web網頁綁定,避免其他人登入了你的賬号。在這裡可以生成以個随機的guid作為唯一辨別。
生成二維碼,大家可以使用jQuery qrcode插件。
2. 用戶端掃描二維碼
用戶端在掃描二維碼之前需要驗證是否已經登入了賬号,如果沒有登入,則需要提示使用者先登入。如果已經登入了,那麼在掃描了二維碼後應讀取唯一辨別guid并将sessionID一并發送給背景伺服器(例如Java)。
3. 通過GoEasy伺服器主動告知web網頁登入成功
背景伺服器接收到請求後通過GoEasy将sessionID主動推送給擁有相同唯一辨別的web網頁。
GoEasy背景實時推送到web
Ruby實作二維碼掃碼登入
4. Web浏覽器設定登入的相關cookie資訊
Web浏覽器收到消息中包括了登入相關的sessionID,浏覽器通過javascript代碼就可以把cookie加入到浏覽器中,這是浏覽器就完成了登入。