6

を使用してデバイスでカスタム認証戦略を実装する方法を知りたいです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_authenticatabledevise :token_authenticable

多分私はちょうど:scopeここに欠けています。

さて、奇妙なことに、ユーザーが無効なトークンを入力するたびに、私の戦略が呼び出され、「あなたはパスしないでください!」となります。返されます。ただし、正しいトークンが提供されると、ユーザーは問題なくログインできます。

4

1 に答える 1