每當我設置一個新的密碼,我得到了一個無效的令牌錯誤消息。我在Devise調試了這個方法,reset_password_token = Devise.token_generator.digest(self,:reset_password_token,params [:reset_token]),並且令牌確實不同於保存在數據庫中的令牌。在這裏做任何一個人,或知道爲什麼令牌不同?鐵路4設計3.2忘記密碼令牌無效
編輯:下面是我用它來重寫設計:: PasswordController控制器代碼
class PasswordsController < Devise::PasswordsController
def edit
original_token = params[:reset_password_token]
reset_password_token = Devise.token_generator.digest(self, :reset_password_token, original_token)
self.resource = resource_class.find_or_initialize_with_error_by(:reset_password_token, reset_password_token)
if !resource.errors.empty?
flash[:alert] = "Password token is invalid"
redirect_to new_session_path(resource_name)
end
end
end
請將控制器代碼發佈到您用新密碼更新密碼的地方。 – Hoa 2014-11-21 03:51:53
@Hoa我編輯了我的控制器代碼的文章。 – 2014-11-21 07:45:22