2012-10-08 29 views
0

我正在幫助爲我工作的公司中的某個部門開發Web應用程序。
我被要求研究一種方式來註銷可能同時在應用程序中的每個用戶,這樣如果更新到Web應用程序被推出,人們就不會使用舊版本的應用程序。將每個用戶記錄到Web應用程序中

我的問題是,因爲我不太瞭解PHP,JQuery,AJAX等,這是我們正在使用的,我還不知道要找什麼。

我們有一個計時器腳本每隔幾秒鐘在後臺運行,所以我想我可以添加一個管理按鈕,更新數據庫中的一個字段,這個腳本可以經常檢查,如果字段已設置,可以執行註銷腳本。但是這似乎是解決這個問題的一個竅門。

我正在與之合作的人建議我看看定製的SESSION處理程序。

你們認爲什麼?有任何想法嗎?

任何幫助,將不勝感激。即使這是關於開始搜索的想法。

在此先感謝!

編輯:我應該提到,這是一個單頁的網絡應用程序。用戶沒有關注任何鏈接或離開頁面。

+0

是你的會話存儲在數據庫中嗎?如果是這樣 - 只需刪除所有會話 - 它會將所有人都登出 – Laurence

+3

如果不是,則可以構建將它們存儲在數據庫中的自定義會話處理程序。 – JCOC611

+0

如果您將每個請求顯示爲維護頁面,則不需要將所有人都註銷。 – deizel

回答

1

爲選定的數據庫中的登錄用戶創建條目,如果性能爲條件,則可以使用memcached。

+0

我們有一個用戶日誌,用於跟蹤已登錄的用戶。我想我們可以檢查沒有註銷時間的用戶。但我仍然沒有看到我們如何將它們註銷。 – npiani

+0

如果你的授權檢查使用一個函數,你可以在數據庫中加入一個額外的行檢查,當你想註銷所有用戶時,只需使用'UPDATE users SET logged_in = 0' – nyson

+0

最接近我做了什麼。你可以查看我在自己的答案中專門做了什麼。謝謝! – npiani

0

使用自定義會話保存處理程序將會話存儲在數據庫或文件中。當你想銷燬所有會話時,你可以清除存儲器(無論是數據庫還是文件)。

開始從 - http://php.net/manual/en/function.session-set-save-handler.php

+0

如果應用程序是單頁應用程序,這仍然可以工作嗎?用戶無需轉到其他頁面。這幾乎都是AJAX。我們無法真正檢查頁面開頭是否清除了SESSION,因爲用戶從未真正更改過頁面。 – npiani

+0

用戶通常如何登錄和註銷?基於Ajax的認證? – janenz00

+0

是的,我相信。我們使用JQuery UI來接收用戶輸入,然後將它傳遞給PHP頁面以記錄用戶。如果用戶刷新頁面或註銷,他們的會話將被銷燬,他們需要再次登錄。 – npiani

0

我最終什麼事做了以下內容:

我添加一個字段到了數據庫表中的一個,每個我們的瀏覽器刻度通過傳來時間(約每分鐘檢查它的價值或者)。如果該字段在滴答通過時被設置,則它們的頁面被刷新,從而將它們從應用程序中註銷並銷燬它們的會話(當有人離開頁面時我們銷燬該會話)。
用戶無法在直到現場已恢復爲「0」

管理員帳戶可以更改場一個按鈕,點擊登錄。因此,它們在數據庫中的字段仍然爲'0',這可能是一種破解,但即使在每個人的幫助之後,我都能想出它。唯一的問題是,需要一點點記錄每個人。我猜測拉動vs推動的問題。

是的,一個電子郵件會發送一段時間之前記錄每個人都關閉,所以他們不會失去工作。

謝謝大家的幫助!

相關問題