我目前正在研究一個j2ee web應用程序。該應用程序爲用戶提供了一種方法,可讓用戶在忘記密碼時重置密碼。用於刪除數據庫條目的EJB定時器
我有一個數據庫表3列:用戶名,密鑰和時間戳。 當用戶請求更改密碼時,我使用他們的用戶名和隨機密鑰在表中添加一個條目(確保它們在表中沒有重複的鍵,並且用戶只能在表中出現一次)。我也加上當前時間。然後我給他們發電子郵件的鏈接到包含他們的關鍵應用,是這樣的:
mysite.com/app/reset?key=abcxyz123
處理這個請求,看在URL中的關鍵找到復位匹配條目的servlet表來確定密鑰屬於哪個用戶。如果密鑰與條目不匹配,則顯示一個錯誤頁面,如果有錯誤頁面,則顯示密碼重置屏幕。一旦用戶更改密碼,我手動刪除該重置表中的條目。
我想實現相當於一段時間的密碼重置鏈接,這樣我就沒有不必要的在表中游蕩的條目,我想到了2個選項,我已經實現了第一個選項:
1)創建一個觸發每分鐘,這將在復位表,其中時間戳是老年人超過30分鐘刪除條目的EJB計時器。這是一個手動過程,因爲我使用hibernate作爲我的jpa實現,所以我從表中檢索所有條目,檢查它們的時間戳,並刪除舊的。
2)創建一個數據庫作業,刪除特定年齡的行?
我的問題是,有沒有人看到任何缺點第一種方法,二是第二個選項甚至可以與MySQL?我認爲,如果我可以使用第二種方法,則可以擺脫計時器,讓數據庫處理密碼重置鏈接的生存時間,這可能會更有效。
我一直沒做J2EE開發爲長,但基於這樣的認識:我有,這似乎是2種邏輯方法。我歡迎任何意見。