编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。
key可以包含授权使用时长,比如1个月。
没有输入正确的key,则无论访问什么url路径,都会跳转到输入key的页面(和用户的登录页面一样)
请问这该怎么实现?
阿神2017-04-18 09:58:35
簡單來說 兩種
根據對方機器產生key。
就是你自己實作一種加密方式。 (摘要演算法之類的不需要反解的演算法就行)
然後取得專案部署那台電腦幾個主要硬體的mac地址
,如主機板網卡硬碟之類的,專案內用這些資料計算出一個值,和使用者填入的key比較相同就啟動正式項目,不同就提示請填入key。
至於如何獲取對方硬體訊息,就隨意了,例如直接讓部署專案的同志給你發回來然後,你用那個算計算一個key 發回去。
你自己產生一個key到處發放。
例如再建一個web服務,用這台機器生成一批UUID
發放出去,然後專案啟動後,先請求一次這個伺服器進行,伺服器進行校驗,判斷key存不存在,用過沒有,發來用過的key的機器和第一次啟動是同一台機器麼。 (一樣用不可逆的演算法就行)
或者更簡單,搞一種偽隨機演算法(可逆的演算法),根據種子可以算出一批key,每個key都可以反解出這個種子。
計畫啟動時解密輸入的key,判斷是不是那個種子。
伊谢尔伦2017-04-18 09:58:35
前提是你已經透過其他方式把這個key
給了客戶.
校驗訪問是否非法通過cookie
判断是否已经登陆,如果验证比较严谨,你这种按授权来的也可以加些ip
地址,mac
地址之類的強校驗,畢竟你客戶群很可能不是普通大眾.
授權使用時長,你說的是按一個月算的,也有可能有高級點的客戶按半年算的,所以這個是生成時候決定的.
可以使用redis
存儲你的這個redis
存储你的这个key
,可以设置过期时间,每次访问从cookie
取key
(多数是要加密的),根据key
可以去redis
,可以設定過期時間,每次存取從cookie
取
redis
取授權剩餘時間.
springmvc
高洛峰2017-04-18 09:58:35
不知道你的key和使用者是怎麼綁定的。應是以用戶的唯一識別。可以把符合的使用者的唯一識別和key存入資料庫或快取裡,以此來判斷使用者是否有權限。至於頁面跳轉搞個filter就夠了。