spring - JAVA WEB 授权问题请教。
PHP中文网
PHP中文网 2017-04-18 09:56:35
0
6
443

编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。

  • key可以包含授权使用时长,比如1个月。

  • 没有输入正确的key,则无论访问什么url路径,都会跳转到输入key的页面(和用户的登录页面一样)

请问这该怎么实现?

PHP中文网
PHP中文网

认证0级讲师

全部回覆(6)
阿神

簡單來說 兩種

  1. 根據對方機器產生key。

    就是你自己實作一種加密方式。 (摘要演算法之類的不需要反解的演算法就行)
    然後取得專案部署那台電腦幾個主要硬體的mac地址,如主機板網卡硬碟之類的,專案內用這些資料計算出一個值,和使用者填入的key比較相同就啟動正式項目,不同就提示請填入key。
    至於如何獲取對方硬體訊息,就隨意了,例如直接讓部署專案的同志給你發回來然後,你用那個算計算一個key 發回去。

  2. 你自己產生一個key到處發放。

    例如再建一個web服務,用這台機器生成一批UUID發放出去,然後專案啟動後,先請求一次這個伺服器進行,伺服器進行校驗,判斷key存不存在,用過沒有,發來用過的key的機器和第一次啟動是同一台機器麼。 (一樣用不可逆的演算法就行)
    或者更簡單,搞一種偽隨機演算法(可逆的演算法),根據種子可以算出一批key,每個key都可以反解出這個種子。
    計畫啟動時解密輸入的key,判斷是不是那個種子。

伊谢尔伦
  • 前提是你已經透過其他方式把這個key給了客戶.

  • 校驗訪問是否非法通過cookie判断是否已经登陆,如果验证比较严谨,你这种按授权来的也可以加些ip地址,mac地址之類的強校驗,畢竟你客戶群很可能不是普通大眾.

  • 授權使用時長,你說的是按一個月算的,也有可能有高級點的客戶按半年算的,所以這個是生成時候決定的.
    可以使用redis存儲你的這個redis存储你的这个key,可以设置过期时间,每次访问从cookiekey(多数是要加密的),根据key可以去redis,可以設定過期時間,每次存取從cookie

    (多數是要加密的),根據
  • 可以去redis取授權剩餘時間.
  • springmvc

    對於校驗key失敗訪問任何一個頁面都要跳回輸入key的頁面.問題帶了
  • 標籤,那你應該知道請求都是被攔截然後處理完再跳轉的,你應該是有思路的.
🎜 🎜
小葫芦

不知道你的key和使用者是怎麼綁定的。應是以用戶的唯一識別。可以把符合的使用者的唯一識別和key存入資料庫或快取裡,以此來判斷使用者是否有權限。至於頁面跳轉搞個filter就夠了。

阿神

可以登入成功後產生一個秘鑰 存入cookie 並且設定cookie的時效,每次刷新網頁是驗證一下,這算是比較簡便的方法了

刘奇

沒有其他外部憑證的情況下,題主的需求與「使用使用者名稱密碼登入後記錄登入狀態一段時間」有什麼不同?

阿神

謝謝各位的回复,不過不好意思只能採納一個答案。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!