मैं सोच रहा हूं कि devise :token_authenticable
का उपयोग करके एक कस्टम प्रमाणीकरण रणनीति को कैसे कार्यान्वित किया जाए।उपयोग करने के लिए कस्टम प्रमाणीकरण रणनीति का उपयोग: टोकन_authenticable
मुझे पहले से ही devise :database_authenticatable
का उपयोग कर मॉडल के साथ इसे कैसे करना है, इस पर निर्देश मिलते हैं जो here को कवर किया गया है।
मॉडल I प्रमाणीकृत करने का प्रयास कर रहा है नाम 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
तो यह उपयोगकर्ता सक्षम beeing नहीं करने के लिए नेतृत्व चाहिए लॉगिन करने के लिए, लेकिन किसी भी तरह यह रणनीति devise :database_authenticatable
से devise :token_authenticable
पर स्विच करते समय लागू नहीं होती है।
शायद मुझे अभी :scope
सही लगेगा।
अब, यहां अजीब चीज है: जब भी कोई उपयोगकर्ता अमान्य टोकन में प्रवेश करता है तो मेरी रणनीति लागू होती है और "आप पास नहीं होंगे!" वापस आ गया है हालांकि जब सही टोकन की आपूर्ति की जाती है, तो उपयोगकर्ता ठीक से लॉग इन कर सकता है।
शर्म की बात है कि कोई भी था एबीएल ई के साथ आपकी मदद करने के लिए। क्या आप समाधान ढूंढने में सक्षम थे? – seanhussey
शायद http://kyan.com/blog/2013/10/11/devise-authentication-strategies मदद करेंगे? –
आपको एक 'वैध' लागू करना होगा? अपनी रणनीति के लिए विधि भी। मुझे नहीं पता कि इससे कुछ हल हो जाएगा, लेकिन यह निश्चित रूप से किसी भी रणनीति के लिए एक शर्त है (उदाहरण के लिए जॉन बेयनॉन का लिंक देखें)। – conciliator