我注意到這個問題是很老的和沒有答覆,我也相似,所以我將分享我的兩分錢的東西工作。希望你現在已經解決了這個問題。
你的用戶管理系統應提供整個登錄過程中只完成後的會話密鑰,這意味着你應該讓用戶在他們完成所有步驟都提供權威性的數據之後。
- 收到用戶名和密碼
- 支票憑證和身份驗證選項
- 如果憑據是確定並沒有啓用谷歌驗證,給他的會話密鑰,否則重試
- 如果credetials是確定並啓用谷歌驗證,通過$ _ POST [「用戶」]挑戰形式
- 如果TOTP密碼與服務器端的檢查,返回會話密鑰,否則重試
$_POST[] ----> loginCheck() ----> if(GAuth) ----> checkTotp() ----> sessionKey
| |
*---------------------------------*
loginCheck()應檢查用戶和密碼都OK,否則拒絕訪問
如果(GAuth)應返回true或false,depeding如果你的用戶使用GAuth
checkTotp應在客戶端和服務器上檢查TOTP密碼的方法
sessionKey應該是用於訪問受保護內容,存儲服務器端和客戶端一段時間的令牌
或者適應這種想法你的需要......在我看來,你應該接受的時候,他通過了所有的認證試驗系統中的用戶。
你可以讓用戶表單hols用戶名/密碼和密碼,然後一次處理所有數據,並避免兩頁。
瞭解更多關於https://tools.ietf.org/html/rfc6238
這基本上是我終於實現了。感謝發佈! – 2013-01-16 19:46:00
好吧,祝你有個愉快的一天 – 2013-01-16 19:48:06