2010-09-25 53 views
0
  1. 我想允許用戶只能使用一個系統登錄。
  2. 如果他們使用另一臺機器,那麼他們不應該能夠登錄。
  3. 如果他們想要登錄,那麼他們可以點擊請求登錄選項,它會發送一個重置鏈接到用戶的電子郵件,當點擊時將重置和更新數據庫,以便從現在開始,他可以登錄從他所做的機器形式重置請求。
  4. 因此,當用戶更換他的機器時,他不應該能夠登錄並且可以請求重置選項。
  5. 我正在使用IP和會話ID和以前的會話ID來檢查從一臺機器登錄。
  6. 如果他的會話在該機器中到期,他將在下一次通過將之前的會話id引用存儲在cookie中來登錄。
  7. 所以他每次訪問時會有兩種餅乾意味着他以前是否在本機登錄,如果是的話會話ID被更新,他已登錄。php用戶應該登錄一個系統,除非請求不應該能夠從其他系統登錄

    所以,如果他是從登錄一臺機器,如果沒有先前的/當前的會話ID/IP地址,那麼他被認爲是該機器的全新的,並且他不能登錄。

    希望我已經說清楚了。如果它不太清楚,那麼請評論,然後我將編輯我的問題。

    我想要一個更好的方法或其他有效的機制來實現這樣的功能。

    即使客戶端在LAN中,所有上述條件都適用。

    做我的做法有併發症嗎?如果是的話請建議一個好的。

    謝謝。


編輯評論之後,從https://stackoverflow.com/users/164394/purplepilot


用戶可以在任何地方登錄,但如果機器的變化,他們可以通過他們的電子郵件請求復位。當他們點擊電子郵件中的鏈接時,那臺機器的ip將被記錄下來,用戶將不得不繼續使用該系統。這是管理員要求的,因爲只有兩個管理員用戶。

+0

我的問題會是爲什麼?你想達到什麼目的? – PurplePilot 2010-09-25 13:04:03

+0

客戶請求。 – 2010-09-25 13:15:26

+0

即使客戶在LAN中,所有上述條件都適用。 – 2010-09-25 13:20:23

回答

1

爲什麼不使用cookie而不是會話,因爲您的應用需要這樣做。

我想你感到困惑

會議從來沒有存儲在客戶端的cookie一樣。所以你必須考慮這個應用程序的cookie。該項目的邏輯似乎okey,一旦你實現cookie而不是會話。

+0

哈哈......誰不知道你的第一句話。即使客戶端在LAN中,上述所有條件都適用。 – 2010-09-25 13:21:17

+0

我編輯了我的問題以添加幾行。 – 2010-09-25 13:25:55

+0

你甚至在局域網中,作爲cookie工作在個人機器到期時間 – 2010-09-25 13:26:14