如何使用devise_token_auth跳过电子邮件确认?

时间:2015-03-24 17:27:32

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

我正在为我的Rails应用程序使用devise_token_auth gem。我想在用户sign_up完成后登录应用程序。我怎样才能跳过确认。

我试过config.reconfirmable = false但没有运气

任何人都可以建议我或帮助我如何实现这一目标? 我尝试了提供的解决方案

Why won't Devise allow unconfirmed users to login even when allow_unconfirmed_access_for is set?  但仍然以

结束
{"success":false,"errors":["A confirmation email was sent to your account at test123@gmail.com. You must follow the instructions in the email before your account can be activated"]}

2 个答案:

答案 0 :(得分:4)

添加以下回调模型定义:

before_save -> { skip_confirmation! }

从包含的设计模块中删除:confirmable

  devise :database_authenticatable, :recoverable,
         :trackable, :validatable, :registerable,
         :omniauthable # there is no :confirmable here

答案 1 :(得分:0)

或者,如果您想跳过向某些人发送电子邮件确认但继续向其他人发送电子邮件确认(例如基于电子邮件地址),则可以执行类似的操作。

# app/models/user.rb
after_create :skip_confirmation_email_for_some_user

# ...

protected
  def skip_confirmation_email_for_some_user
    if self.email.include? "noconfirm"
      self.skip_confirmation!
      self.confirm
    end
  end

在Rails 5.1.6和Devise Token Auth 0.2.0上进行了测试