2011-07-14 29 views
2

爲CakePHP 1.3編寫一項新功能,我希望密碼在x天之後和y天過期後自動將密碼更改爲隨機字符串,並通過電子郵件向用戶發送新密碼或登錄鏈接。服務器上的crontab是否正確?或者securich強制更改每隔x天使用密碼過期10天到期?

+0

在鎖定用戶之前,您應該允許他們自己重置密碼,除非您隨機將他們的密碼作爲最後手段使用,否則這似乎是一種錯誤的方法。 – Kzqai

+0

我打算在15天,10天,然後在5天內通過電子郵件重置警告。該應用程序的設計方式是,如果配置文件未完成並且帳戶被鎖定,則以前的所有工作都將丟失。 – db0

+0

這很公平。 – Kzqai

回答

2

cronjobs和securich兩個非常不同的事情。第一個按定義的時間間隔或在給定的時間啓動進程。第二個似乎是管理mysql服務器用戶權限的工具。很明顯,第二個對你沒有太大的幫助,因爲它不是服務器的特權,關係到你,而是裏面的密碼(等)這個數據庫。

您可以使用cron作業進行清理。這意味着,你在1天的時間間隔內啓動一個腳本,通過你的用戶表執行,需要做什麼。如果最後一次密碼更改是在x天之前發送電子郵件,如果最後一次密碼更改是在x + y天之前更改密碼並通過電子郵件發送新密碼。因此,你需要一個新的列last_password_change_date什麼和腳本需要知道,什麼xy是。

1

爲PHP腳本一個cronjob每天跑我肯定會設置此。因爲在你的數據庫密碼上次重置(爲每個用戶)起生效

跟蹤,這應該是很簡單的開發。

1

通常的Web應用程序不使用用戶提供的身份驗證令牌用於認證到數據庫的連接(securich是所有有關管理身份驗證令牌在數據庫/權限)。而你的代碼(操作auth令牌)與它被調用的方式完全不同。

所以只是看着調用的操作的問題....

有許多可用於調度程序的工具。 cron和通常在Unix/Linux/POSIX系統上標準化 - 因此它們是這項工作的明智工具。但是,請調用CLI解釋器來運行代碼 - 不要試圖將作業調用爲網頁(至少不是directly) - 網頁不適用於調用長時間運行的進程。

但是,爲什麼不只是強制用戶更改時,他們已經沒一會兒登錄密碼?

(我還認爲有強制用戶更改他們的密碼的做法,並特別爲他們更改密碼併發送新密碼或通過電子郵件的替代標記的做法)。