を使用してデバイスでカスタム認証戦略を実装する方法を知りたいですdevise :token_authenticable
。
ここdevise :database_authenticatable
でカバーされているモデルを使用してそれを行う方法についての説明はすでに見つかりました。
認証しようとしているモデルの名前はPupil
です。したがって、これが私の現在の戦略です( にありますconfig/initializers/custom_auth.rb
):
Warden::Strategies.add(:auth_pupil_strategy) do
# missing valid? method indicates this strategy is always applied
def authenticate!
fail!("YOU SHALL NOT PASS!")
end
end
そして私のconfig/initializers/devise.rb
(またなしで試してみました:scope => :pupil
):
config.warden do |manager|
manager.default_strategies(:scope => :pupil).unshift :auth_pupil_strategy
end
したがって、これによりユーザーはログインできなくなりますが、 から に切り替えると、どういうわけかこの戦略は適用されませdevise :database_authenticatable
んdevise :token_authenticable
。
多分私はちょうど:scope
ここに欠けています。
さて、奇妙なことに、ユーザーが無効なトークンを入力するたびに、私の戦略が呼び出され、「あなたはパスしないでください!」となります。返されます。ただし、正しいトークンが提供されると、ユーザーは問題なくログインできます。