【问题标题】:Devise Confirmable -- How To Disable Confirmation Feature?设计可确认——如何禁用确认功能?
【发布时间】:2020-01-03 17:48:58
【问题描述】:

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

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

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

ii) 另外,关于迁移文件需要更改哪些内容?使用config.allow_unconfirmed_access_for = nil,我是否需要按照these docs 中的指定取消注释我的迁移文件中的可确认字段?还是我让 cmets 一个人呆着?

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

【问题讨论】:

  • 你到底在问什么?您是否有一个可确认的应用程序并且您想删除该功能?或者您只是想创建一个没有可确认的应用(这是设计的默认设置)?
  • 或者您是否想出于某种非常奇怪的原因创建一个完全不需要确认的可确认应用?
  • 嗨@max,我想“创建一个无需确认的应用程序”——换句话说,我想创建一个用户无需确认其帐户的应用程序。
  • 所以如果我理解正确的话,你是说我不需要做任何代码更改吗?我只是保留用户模型、迁移和配置,因为它是使用生成的设计 $ rails generate devise user 创建的。
  • 是的,这是设计的默认设置,因此您无需执行任何操作。可确认是选择加入。

标签: ruby-on-rails devise devise-confirmable


【解决方案1】:

默认情况下不启用可确认模块。要“禁用”它,您只需从对模型中 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 来确认电子邮件,而不是使用它来限制授权。例如,许多应用程序将某些功能限制为已确认其电子邮件的用户 - 但您仍然可以使用未确认的电子邮件登录多久。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-16
    • 2023-03-15
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多