天天看點

Ruby實作二維碼掃碼登入

實作用戶端掃碼登入分為下列四步:

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加入到浏覽器中,這是浏覽器就完成了登入。