Devise Confirmable -- 如何禁用确认功能?

Devise Confirmable -- How To Disable Confirmation Feature?

根据这个问题,如果我不要求我的用户在创建帐户后 "confirm" 他们的帐户,那么我可以将此选项传递给配置 config.allow_unconfirmed_access_for = nil,我在 this issue。但是,我不清楚的是 confirmable 的其余配置:

i) 我需要用 devise :confirmable 更新我的 Devise 用户模型吗?现在它看起来像这样并且没有通过 :confirmable

devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable

ii)另外,迁移文件需要修改什么?对于 config.allow_unconfirmed_access_for = nil,我是否需要按照 these docs 中指定的那样取消注释我的迁移文件中的可确认字段?还是我不理会评论?

目前我正在使用 Rails 6.0.1 和 Devise 4.7.1.

默认情况下不启用可确认模块。要 "disable" 它,您只需从对模型中 devise 方法的调用中删除模块名称:

class Person < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable 
end

如果不启用可确认模块,config.allow_unconfirmed_access_for 设置绝对无效。

您想要使用 config.allow_unconfirmed_access_for = nil 的原因是您想要使用 Devise::Confirmable 来确认电子邮件但不使用它来限制授权。例如,许多应用程序将某些功能限制为已确认电子邮件的用户 - 但您仍然可以使用未确认的电子邮件登录多长时间。