紅寶石「1.9.3」設計確認再次發送「登錄不能爲空」錯誤與確認的鏈接從電子郵件有「確認令牌無效」錯誤
「軌道」,「3.2.13」
「devise」,'〜> 3.2.2'
我在不修改的情況下使用Devise確認控制器。我創建了一個用戶併發送了電子郵件。然後點擊鏈接確認「確認令牌無效」結果。電子郵件中的標記與數據庫中的標記相同。
此外,當用戶在註冊編輯我提供了一個鏈接重新發送確認電子郵件。這會使用戶收到確認新消息,並填寫電子郵件,然後單擊「重新發送確認說明」按鈕並收到錯誤「登錄不能爲空」。用戶已登錄,否則他們將無法訪問用戶/編輯或用戶/確認/新建。
我已配置設計接受用戶名或電子郵件登錄。
您的意思是說,url中的確認標記與該用戶的數據庫中的confirmation_token列相同?此外,用戶不需要登錄就可以訪問用戶/確認/新建。未登錄的用戶可以默認重新發送確認電子郵件。 – Tim
正確他們是相同的。我知道應該不需要登錄確認/新建。 電子郵件: Confirm my account 數據庫: users.confirmation_token = 716276a13f8200b2e79e9c84c9b6ce9a718018dda37752525b27af6958300176 –
在設計3.1,原來標記插入默認的郵件模板(如果您使用它)和加密版本存儲在數據庫中,所以他們不該」 t是相同的(除非在使用'config.allow_insecure_token_lookup'時升級設計之前生成的db中的令牌)。它看起來像您發佈的鏈接中的令牌是加密的形式,而不是原始令牌。您是否覆蓋了確認電子郵件模板?如果是這樣,你需要使用'@ token',它通過devise傳入模板,而不是'@ resource.confirmation_token'。 – Tim