我有一個rails應用程序,使用devise gem進行用戶身份驗證。即使設置了confirm_within參數,設計用戶也不會登錄
我用可確認發送確認郵件給用戶。它運行良好。我收到確認電子郵件。我需要在成功登錄前確認我的帳戶。
我想讓他們在確認他們的帳戶之前嘗試我們的應用一段時間。所以我在設計初始化器中設置了confirm_within。它失敗了。用戶填寫註冊表格後,他們將在註冊後重定向回登錄頁面。我查了一下日誌,看起來用戶沒有登錄,所以認證失敗!過濾前。
這是我的配置。
型號:user.rb
devise :database_authenticatable, :registerable, :encryptable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
route.rb
devise_for :users, :controllers => {:password => "passwords"}
初始化器:devise.rb
config.confirm_within = 2.days
application_controller.rb
def after_sign_in_path_for(resource)
stored_location_for(resource) || jobs_path
end
jobs_controller.rb
class JobsController < ApplicationController
before_filter :authenticate_user!
***some functions
end
我不知道我做錯過什麼。有人會好心告訴我如何解決這個問題嗎?謝謝。
你有沒有簽過用戶?您需要撥打'sign_in @ user'才能讓用戶登錄。通常,您在提交登錄表單時對用戶的憑據進行身份驗證後會這樣做... – Batkins 2012-02-01 21:37:29
感謝回覆@Batkins。註冊和確認過程由Devise控制。我使用官方寶石,並沒有改變任何內部。我檢查了源代碼,並似乎設計sign_in用戶註冊#創建已經....任何想法? – 2012-02-02 04:58:06