① 使用微信快捷登錄網站(PC版),怎樣實現呢微信現在有這樣的介面嗎
其實這個模碰你網路一下確實很多方法來實現這種效果
掃碼登錄大概的思路是:微信手機客戶端從網頁二維碼裡面得到一些信息,然後發送給網頁微信的伺服器,網頁伺服器驗證信息並指返響應。下面,我們藉助火狐瀏覽器提供的Firebug工具看看,到底是怎麼一回事兒吧!
1.每次打開微信網頁版的時候,都會生成一個含有唯一uid的二維碼,而且每次刷新後都會改變。這樣可以保證一個uid只可以綁定一個賬號和密碼,確定登錄用戶的唯一性。可以通過手機上的UC瀏覽器提供的掃碼功能查看二維碼裡面的信息,但並不會自動打開該地址。我刷新三次,掃描結果如下,其中最後面那串數字就是uid:
1)https://login.weixin.qq.com/l/48e24d66bdbc4f
2)https://login.weixin.qq.com/l/0787fb4fa7ad4c
3)https://login.weixin.qq.com/l/92781a4a7f1c47
通過查看網頁源碼,這個頁面在載入完畢時,已經把很多登錄後才需要的相關資源都預先載入進來了,所以登錄用戶得到確認後展示用戶信息的速度很快。
2.除了返回唯一的uid,實際上打開這個頁面的時候,瀏覽器跟伺服器還創建了一個長連接,請求uid的掃描記錄。如果沒有,在特定時長後(目前是27秒左右)會接到狀態碼408(請求超時),表示應該繼續下一次請求;如果接到狀態碼201(伺服器創建新資源成功),表示客戶端掃描了該二維碼。
3.當用戶使用登錄後的微信掃描二維碼的時候,會將uid和手機微信產生的token進行綁定,並上傳到伺服器。這個時候,瀏覽器通過長輪詢查詢到uid掃描記錄,立即得到201響應碼,然後通知伺服器,客戶端由此也進入一個新的頁面(就是那個要你點確認的按鈕)。在客戶端點擊確認後,獲得伺服器授信的令牌,進行隨後的信息交互過程。
結語
總的來說,微信掃碼登錄核心過程應該是這樣的:瀏覽器獲得一個唯一的、臨時的uid,通過長連接等待客戶端掃描帶有此uid的二維碼後,從長連接中獲得客戶端上報給伺服器的帳號信息進行展示。並在客戶端點擊確認後,獲得伺服器授信的令牌,進行隨後的信息交互過程。 在超時、網路斷開、其他設備上登錄後,此前獲得的令牌或丟失、或失效,對授權過程形成有效的安全防護。
其實這個思路我自己有一個,可以通過一個認證的公眾號來做掃描,不藉助微信系統埠來登錄!
登錄頁面需要生成一個隨旦逗談機不重復的KEY,保存到二維碼的鏈接裡面,然後像伺服器請求把KEY存到資料庫,同時寫一個每秒請求一次後端介面的輪詢,查看這個KEY有沒有被掃描,同時確認信息
微信公眾號裡面調取掃一掃介面掃描介面信息,通過微信的掃一掃介面獲取到KEY的值,檢測資料庫有這個值,同時這個值沒有失效,那麼把這個值和用戶openid綁定存到資料庫
輪詢沒有超時,檢測到KEY與openid綁定的話,那麼獲取openid的所有信息同時存入到session,接著跳轉到你需要的頁面,這樣一個基本的掃碼登錄的思路就完成了
總結:首先你需要認證公眾號,這個是最基礎的!其次我說的這個思路雖然可以實現,但是微信有現成的,為什麼不用現成的呢?