gpt4 book ai didi

ruby-on-rails - 设计注册确认

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:28 26 4
gpt4 key购买 nike

我在我的项目中有一个用户和一个管理员角色。我使用 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"

在用户注册后,我被重定向到 Controller main 并带有闪现通知“您已成功注册”,并且我已登录。但我不想登录,因为我还没有确认我的新用户帐户。

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

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

最佳答案

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

config.confirm_within = 2.days

如果将其设置为 0,您应该会得到所需的结果。

关于ruby-on-rails - 设计注册确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2754297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com