# 認証求められる
class User < ApplicationRecord
extend Devise::Models
include DeviseTokenAuth::Concerns::User
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
# 認証なしでいける
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
extend Devise::Models
include DeviseTokenAuth::Concerns::User
end
includeしてるDeviseTokenAuth::Concerns::User
の中身にdevise
が記述されているか?の項目があったので、includeより上にdeviseの項目を設定しないと反映されないっぽい。
生成時ではinclude
はdevise
よりも下にあるので、まあ納得っちゃ納得だけど、上に持ってこないと、違和感がすごい。
とりあえずこれで動きます
module DeviseTokenAuth::Concerns::User
extend ActiveSupport::Concern
included do
# Hack to check if devise is already enabled
if method_defined?(:devise_modules)
devise_modules.delete(:omniauthable)
else
devise :database_authenticatable, :registerable,
:recoverable, :validatable, :confirmable
end
end
end
参考記事
なし。ソース見てみたら書いてあった。
コメントを残す