題主的需求描述缺乏一些細節(jié),所以不好妄加判斷具體實現(xiàn)方案,我先做一些補完,然后根據(jù)這個假設(shè)的需求提供一套簡單方案。
首先既然是簽到,那么一個基本的需求應(yīng)該是防止代刷,員工必須本人出現(xiàn)在特定的場所,才能完成這個簽到動作。
我就不去梳理user story了,雖然是個小功能但正兒八緊做的話,還是有很多細節(jié)需要扣,這里我僅僅針對最常用的需求來講。
既然二維碼只能顯示在特定的設(shè)備上,那可以考慮有一個web系統(tǒng),用戶名密碼保護,或者僅供公司內(nèi)網(wǎng)訪問,將簽到二維碼放在這個系統(tǒng)上。
為了提高員工體驗我們讓這個二維碼24小時不間斷顯示在一個固定設(shè)備上,不需要任何前置操作,員工可隨時拿出手機來刷。
二維碼不應(yīng)該和某個用戶的具體id相關(guān),而是應(yīng)該作為通用二維碼任何員工都可以刷。因為這是顯示在一個公用簽到機上的。
二維碼需要5秒鐘變換一次,類似各種硬件authenticator的機制,之前二維碼作廢,防止員工拍照發(fā)給另外一個員工掃碼遠程簽到。
員工需要用微信,或者公司自己的app掃碼,微信實現(xiàn)簡單一些,可以把微信的openid和公司簽到系統(tǒng)的員工號綁定。這樣就實現(xiàn)了同一個二維碼不同人掃,簽到不同的人。
二維碼內(nèi)容其實就是一個url,訪問公司簽到系統(tǒng)的一個中轉(zhuǎn)頁面,這個頁面來收集用戶的微信openid,中轉(zhuǎn)過程是用戶無感知的因為不需要任何UI(當(dāng)然如果用戶未做過微信授權(quán),這里會跳出微信登錄提示框),然后和公司簽到系統(tǒng)員工id做映射,再帶入二維碼當(dāng)前的唯一token,一起發(fā)請求至簽到系統(tǒng)的簽到api即可。
這樣簽到系統(tǒng)的接口,可以獲取如下信息:1、簽到時間戳,2、簽到員工id,3、二維碼簽名token(用來判斷這個二維碼有沒有失效)
掌握這三條信息,所有的基本簽到業(yè)務(wù)需求基本都可以實現(xiàn),比如重復(fù)簽到的過濾,簽到時間判斷是否遲到,等等。
以上就是【是女人一定要看!越早知道越好(web端怎么做)web端怎樣用fiddler進行抓包-web端怎么用二維碼傳值實現(xiàn)簽到?】的全部內(nèi)容。
評論