2010-11-05 35 views
0

我的某個網站有一個奇怪的錯誤。我用authlogic所有登錄相關的東西,包括密碼重置過程,工作過程如下:Authlogic易腐標記 - 它們是瀏覽器特定的嗎?

首先,在他們的電子郵件地址的用戶類型和擊中一個按鈕發送重置密碼鏈接。在隨後的行動我這樣做:

user.reset_perishable_token! 
user.host = request.host_with_port 
token = user.perishable_token 

「令牌」進入的電子郵件中的鏈接,他們隨後被髮送,其格式如下:

<domain name>/users/edit_password?id=1670&token=y1j6k__imXOajyNGq8DN 

其中id是用戶的ID和令牌是我剛剛生成的令牌。

看他有,我這樣做的電子郵件鏈接點的操作:

@user = User.find_using_perishable_token(params[:token], 1.day) 

和@user無論是不是空白的基礎上,我決定令牌是否有效,他們可以繼續並更改他們的密碼。普遍認爲,工作正常,但我有在那裏,如果有人在一個瀏覽器生成重置電子郵件中的問題,那麼臨危在其他瀏覽器中的電子郵件,並點擊它(從而打開瀏覽器B中的「edit_password頁面),鏈接被決定無效。

我想不出爲什麼瀏覽器會有所作爲。我認爲這是由於系統時間,但這兩個瀏覽器是一樣的嗎?

感謝您的任何想法 - 最大

回答

0

不應該有所作爲。確保您在發送易腐標記後不保存用戶 - 易腐標記將在保存時更改。

+0

謝謝 - 我認爲它不應該有所作爲。易腐標記在任何給定的瀏覽器內工作正常,所以我不認爲我在服務器端做任何錯誤。這很神祕。 – 2010-11-08 16:34:38