Zastanawiam się, jak zaimplementować niestandardową strategię uwierzytelniania przy użyciu narzędzia Deinstalacja przy użyciu devise :token_authenticable
.Niestandardowa strategia uwierzytelniania dla twórców Korzystając z: token_authenticable
Już znalazłem instrukcje, jak to zrobić z modelem przy użyciu devise :database_authenticatable
, który jest objęty here.
Model próbujący uwierzytelnić ma nazwę Pupil
. Więc tutaj jest moja obecna strategia (znajduje się w 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
i moim config/initializers/devise.rb
(również próbował go bez :scope => :pupil
):
config.warden do |manager|
manager.default_strategies(:scope => :pupil).unshift :auth_pupil_strategy
end
Więc powinno to prowadzić do użytkownik nie bardzo dobrym stanie zalogować się, ale jakoś ta strategia nie jest stosowana przy zmianie z devise :database_authenticatable
na devise :token_authenticable
.
Może po prostu brakuje mi tutaj prawa :scope
.
Oto dziwna rzecz: za każdym razem, gdy użytkownik wprowadza nieprawidłowy token, moja strategia jest wywoływana i "NIE PASZ!". jest zwracany. Jednak po dostarczeniu prawidłowego tokena użytkownik może się zalogować.
wstyd, że nikt nie był abl e, aby ci w tym pomóc. Czy byłeś w stanie znaleźć rozwiązanie? – seanhussey
może http://kyan.com/blog/2013/10/11/devise-authentication-strategies pomoże? –
Musisz zaimplementować "prawidłowy?" metoda dla twojej strategii. Nie wiem, czy to rozwiąże cokolwiek, ale z pewnością jest warunkiem wstępnym jakiejkolwiek strategii (patrz np. Link Johna Beynona). – conciliator