2

Ich arbeite am Projekt (Ruby '2.2.0', Rails '4.2.3'), die sowohl Standard - Benutzerverwaltung (für Webseite) als auch devise_token_auth (für API - Teil von der Service). Alles funktioniert gut, außer ichRails - devise with devise_token_auth keine Bestätigungs - E - Mail senden

include DeviseTokenAuth::Concerns::User 

in den models/user.rb. Das Senden von Bestätigungs-E-Mails nach der Benutzerregistrierung erfolgt nicht.

Ich wäre dankbar für die Lösung dieses Problems.

Meine Modelle/user.rb:

class User < ActiveRecord::Base 
    # Include devise modules. 
    devise :invitable, :database_authenticatable, :registerable, 
      :recoverable, :rememberable, :trackable, :validatable, 
      :confirmable, :omniauthable 

    include DeviseTokenAuth::Concerns::User 

    enum role: [:user, :vip, :admin] 
    after_initialize :set_default_role, :if => :new_record? 

    def set_default_role 
    self.role ||= :user 
    end 
end 

routes.rb:

Rails.application.routes.draw do 
    # standard devise routes available at /users 
    # NOTE: make sure this comes first!!! 
    devise_for :users 

    # token auth routes available at /api/v1/auth 
    namespace :api do 
    scope :v1 do 
     mount_devise_token_auth_for 'User', at: 'auth' 
    end 
    end 
end 

Antwort

4

ich das gleiche Problem auf Sie. Diese Problemumgehung hat mir geholfen

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
      :recoverable, :rememberable, :trackable, :validatable, 
      :confirmable 

    include DeviseTokenAuth::Concerns::User 

    after_create :send_confirmation_email, if: -> { !Rails.env.test? && User.devise_modules.include?(:confirmable) } 

    private 
    def send_confirmation_email 
    self.send_confirmation_instructions 
    end 
end 
+3

Leider sendet dieser Code Bestätigungs-E-Mails zweimal bei der Registrierung per API. – Kaktusiarz

+0

Danke für die Berichterstattung. Wird die Antwort aktualisieren. – Nathan

Verwandte Themen