簡體   English   中英

設計 - Rails 4 - 無法登錄

[英]Devise - Rails 4 - Not able to login

我剛開始使用 Rails 4。我得到了帶有自定義字段的devise<\/code>設置。 我注冊后可以登錄,但我無法從登錄頁面登錄。 用戶注冊順利,我在數據庫表中username<\/code> 、 password<\/code>等。

有人可以告訴我我錯過了什么嗎? 我的用戶模型非常基本。 這是它的樣子 -

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  validates :username, :uniqueness => true, :presence => {:message => '- Username cannot be blank'}
  validates :first_name, :presence => { :message => " - Firstname cannot be blank!"}    

  private
    def user_params
        params.require().permit(:first_name, :last_name, :username, :email, :password, :password_confirmation)
    end
end

在您的應用程序控制器中,您已經允許使用params進行sign_up,但不允許使用sign_in。 所以我將configure_permitted_parameters方法更改為this,它應該工作:

def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :password, :remember_me) }
    devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:username, :first_name, :last_name, :password, :password_confirmation, :email) }
  end

我正在使用可確認的設計。 devise.rb 的設置方式是,如果帳戶的電子郵件未得到確認,它不會讓我登錄。 所以在我的情況下有效的是在 devise.rb config.allow_unconfirmed_access_for = 999.days 添加以下標志

默認值為 nil,這意味着在用戶確認他們的電子郵件之前,設計不會讓您登錄

在我的 UI 中,我顯示了一個錯誤消息欄,其中包含一個觸發重新發送確認郵件的按鈕。 錯誤欄一直存在,直到用戶確認他們的郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM