我正在構建一個需要離線工作的網絡應用程序。該系統構建用於捕獲銷售交易。大部分的「離線」部分都相當簡單 - 我只需要在本地存儲數據並在我回到網絡時同步它。到現在爲止還挺好。離線網絡應用程序中的用戶身份驗證
問題在於身份驗證。該應用程序將在具有單個OS用戶帳戶的共享機器上運行。如果我離線,我如何驗證用戶?
用戶自己沒有任何需要隔離的私人數據(即我不必在客戶端保護它們)。我需要能夠驗證他們的密碼,這樣即使連接斷開,我也可以讓不同的用戶全天登錄。
我想到的一種方法涉及在IndexedDB中的客戶端上緩存密碼哈希值。只有有限的一組用戶將被允許從特定的共享機器登錄,所以我不需要在本地緩存我的整個密碼數據庫。假設我有一個很好的密碼策略(複雜性和過期要求)並且哈希本身是安全的(bcrypt),那麼這個想法有多可怕?
我還有其他的選擇嗎?
從我讀過的密碼到期可能比有幫助的更有害 - http://www.cryptosmith.com/node/218雖然,如果你暴露你的數據庫可能不是這種情況。 –