以下認證制度似乎合理的:簡單的令牌,如身份驗證
客戶端調用與到主服務器的用戶名和密碼登錄終點。主服務器將其發送給另一個驗證服務器(將不會再提及),如果這是有效的,並且主服務器知道用戶ID,則返回yes/no。如果是,則生成一個隨機標記(使用一些加密隨機字符串的加密庫),並存儲該標記的哈希值(使用PHP的password_hash()),並在用戶記錄中保存12個小時到期。將令牌返回給客戶端。
客戶現在向其他終端添加「授權:令牌TOKEN + HERE + ABCD1234」。服務器確保auth頭中令牌的哈希匹配數據庫中的令牌(通過PHP的password_verify()使用salt),並且過期未被命中。如果它不匹配,或者超過期滿,則發回一個401
似乎至少爲基本HTTP認證,這只是具有base-64編碼的用戶爲安全的:在報頭中的密碼?我之所以考慮這個方案是因爲主服務器不會存儲認證服務器用來登錄的用戶名/密碼。
我忘了什麼?這是非常不安全的?
現在查看會話ID。你的回答似乎表明這是一個合理的解決方案,然後呢? – Luke
如果實施正確 - 我沒有發現任何問題。但是請注意,「密碼安全隨機數生成器」實際上不是「一些加密隨機字符串的加密庫」。 –
哈哈指出。文檔似乎表明它具有密碼安全性,但我會確保。乾杯! – Luke