devise :token_authenticable
을 사용하여 사용자 정의 인증 전략을 구현하는 방법을 궁금합니다.Devise에 대한 사용자 정의 인증 전략 : token_authenticable
devise :database_authenticatable
(here) 모델을 사용하여 모델을 수행하는 방법에 대한 지침을 이미 발견했습니다.
인증을 시도하는 모델의 이름은 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
없이 그것을 시도) : 그래서이 사용자가 할 수 beeing는하지로 연결되어야
config.warden do |manager|
manager.default_strategies(:scope => :pupil).unshift :auth_pupil_strategy
end
로그인하려면이 방법을 devise :database_authenticatable
에서 devise :token_authenticable
으로 전환 할 때 적용되지 않습니다.
어쩌면 난 오른쪽에 누락되었습니다 :scope
여기.
이제 이상한 점이 있습니다 : 사용자가 유효하지 않은 토큰을 입력 할 때마다 내 전략이 호출되고 "당신은 통과하지 말아야합니다!" 반환됩니다. 그러나 올바른 토큰이 제공되면 사용자는 정상적으로 로그인 할 수 있습니다.
수치를하는 데 도움이 abl 이걸로 당신을 도울 수 있습니다. 솔루션을 찾을 수 있었습니까? – seanhussey
어쩌면 http://kyan.com/blog/2013/10/11/devise-authentication-strategies가 도움이 될까요? –
'유효합니까?' 당신의 전략을위한 방법. 그게 문제를 해결할 지 모르겠지만 어떤 전략 (예 : John Beynon의 링크 참조)의 필수 조건 일 것입니다. – conciliator