首頁  >  問答  >  主體

spring - JAVA WEB 授权问题请教。

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

请问这该怎么实现?

PHP中文网PHP中文网2717 天前446

全部回覆(6)我來回復

  • 阿神

    阿神2017-04-18 09:58:35

    簡單來說 兩種

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

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

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

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

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:58:35

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

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

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

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

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

    回覆
    0
  • 高洛峰

    高洛峰2017-04-18 09:58:35

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

    回覆
    0
  • 阿神

    阿神2017-04-18 09:58:35

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

    回覆
    0
  • 怪我咯

    怪我咯2017-04-18 09:58:35

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

    回覆
    0
  • 阿神

    阿神2017-04-18 09:58:35

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

    回覆
    0
  • 取消回覆