Mi chiedo come implementare una strategia di autenticazione personalizzata con devise utilizzando devise :token_authenticable
.Strategia di autenticazione personalizzata per Devise Utilizzo di: token_authenticable
Ho già trovato le istruzioni su come farlo con un modello utilizzando devise :database_authenticatable
che è coperto here.
Il modello im che tenta di autenticare è denominato Pupil
. Così qui è il mio attuale strategia (che si trova in 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
E nella mia config/initializers/devise.rb
(anche provato senza l':scope => :pupil
):
config.warden do |manager|
manager.default_strategies(:scope => :pupil).unshift :auth_pupil_strategy
end
Quindi questo dovrebbe portare ad l'utente non essendo in grado per accedere, ma in qualche modo questa strategia non viene applicata quando si passa da devise :database_authenticatable
a devise :token_authenticable
.
Forse mi manca solo il :scope
giusto qui.
Ora, ecco la cosa strana: ogni volta che un utente inserisce un token non valido, la mia strategia viene invocata e "NON PASSA!" viene restituito. Tuttavia, quando viene fornito il token corretto, l'utente può accedere correttamente.
Peccato che non c'era nessuno abl e per aiutarti con questo. Sei riuscito a trovare una soluzione? – seanhussey
forse http://kyan.com/blog/2013/10/11/devise-authentication-strategies ti aiuteranno? –
Devi implementare un 'valido?' metodo per la tua strategia pure. Non so se questo risolverà qualcosa, ma è sicuramente un prerequisito per qualsiasi strategia (vedi, ad esempio, il link di John Beynon). – conciliator