制订登记确认书[英] Devise registration confirmation

本文是小编为大家收集整理的关于制订登记确认书的处理方法,想解了制订登记确认书的问题怎么解决?制订登记确认书问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的项目中有一个用户和一个管理员角色.我使用 Devise 创建了我的身份验证.

在我的管理员角色中,我没有任何确认.在我的用户模型中,我有以下内容:

devise :database_authenticatable, :confirmable, :recoverable,
       :rememberable, :trackable, :validatable, :timeoutable, :registerable

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :username, :prename, :surname, :phone, :street, :number, :location,
                :password, :password_confirmation

我的迁移看起来像:

class DeviseCreateUsers < ActiveRecord::Migration
  def self.up
    create_table(:users) do |t|
      t.database_authenticatable :null => false
      t.confirmable
      t.recoverable
      t.rememberable
      t.trackable
      t.timeoutable
      t.validateable
      t.string  :username
      t.string  :prename
      t.string  :surname
      t.string  :phone
      t.string  :street
      t.integer :number
      t.string  :location

      t.timestamps
    end

    add_index :users, :email,                :unique => true
    add_index :users, :confirmation_token,   :unique => true
    add_index :users, :reset_password_token, :unique => true
    add_index :users, :username,             :unique => true
    add_index :users, :prename,              :unique => false
    add_index :users, :surname,              :unique => false
    add_index :users, :phone,                :unique => false
    add_index :users, :street,               :unique => false
    add_index :users, :number,               :unique => false
    add_index :users, :location,             :unique => false
  end

  def self.down
    drop_table :users
  end
end

在我的 routes.rb 中,我添加了以下语句:

map.devise_for :admins
map.devise_for :users, :path_names => { :sign_up => "register", :sign_in => "login" }

map.root :controller => "main"

用户注册后,我被重定向到控制器main,提示"您已注册成功",并且我已登录.但我不想登录,因为我还没有确认我的新用户帐户呢.

如果我打开控制台,我会在日志中看到确认邮件文本,但我已经登录了.我无法解释原因.有人有想法吗?

如果我从日志中复制确认令牌并确认我的帐户,我可以登录,但如果我不确认,我也可以登录.

推荐答案

在 config/initializers/devise.rb 中有一行设置用户在被锁定之前必须确认的时间量.

config.confirm_within = 2.days

如果你将它设置为 0,你应该会得到想要的结果.

本文地址:https://www.itbaoku.cn/post/786735.html