掃碼登陸

最近不少網站均可以掃碼登陸了(我看的阿里雲)。這裏我想了下大概流程,並觀察了阿里雲登陸頁面的network,發表下對掃碼登陸的實現。也許有漏洞,歡迎指教。redis

流程:緩存

一、網頁端點擊掃碼登陸,並向服務器端發出要掃碼登陸的請求。安全

二、服務器端生成一個惟一的token,並儲存(這裏好比儲存在了redis, jedis.set("token",""),token爲生成的那個),並返回。服務器

三、網頁端獲取到token後,把token做爲參數,拼接url,並生成二維碼(好比qrcode生成)。學習

四、手機端掃碼,並加上手機登陸的本地信息(好比user_id,持久ticket)。網站

注:這一步能夠進行加密,請求傳user_id,token 和用user_id,token,ticket拼接加密的md5。阿里雲

五、服務器端收到請求後,驗證簽名;成功後,更新儲存(jedis.set("token","user_id"),token是前面的,user_id是傳過來的)。加密

六、網頁端輪詢請求驗證token是否有具體user_id(其實這一步,是在生成二維碼時候就開始了),若是有,則獲取user_id 並進行跳轉,完成登陸(這一步清楚redis緩存噢)。url

優勢:省事(不用各類輸),安全(全程不涉及密碼)。code

後語:如今並無寫出實際代碼,只是今天沒什麼事情,要加班,纔想一想怎麼實現,也許有漏洞,也許方式很差,歡迎指教,畢竟不是高手,要謙虛學習。固然,若是能幫到你們,我也很開心的。

相關文章
相關標籤/搜索