आप इसे अतिरिक्त परम में गुजरकर और मो चुनकर ऐसा करते हैं डेल आप उस परम के आधार पर प्रमाणित करना चाहते हैं। यह गोंडेटो के उत्तर के समान है, लेकिन डोरकीपर में स्कॉप्स का उपयोग बेहतर प्रबंधन के लिए किया जाता है ताकि प्रमाणीकृत ऐप को कौन सी अनुमतियां दी जा रही हों (यानी "इस ऐप को एक्स पढ़ने और आपकी तरफ से वाई लिखने की अनुमति दें")।
यहाँ मैं क्या उपयोग कर रहा हूँ
resource_owner_from_credentials do |routes|
if params[:user_type].present?
case params[:user_type]
when 'user'
u = User.find_for_database_authentication(email: params[:email])
when 'employer'
u = Employer.find_for_database_authentication(email: params[:email])
when 'admin'
u = Administrator.find_for_database_authentication(email: params[:email])
end
end # I don't want a default auth user_type, so no 'else' block for me
user if user && user.valid_password?(params[:password])
end
ध्यान दें कि एक परम कि द्वारपाल पहले से ही कुछ और के लिए उपयोग नहीं कर रहा है के बजाय कार्यक्षेत्रों का उपयोग कर यह करने के लिए यदि आप थे, तो आप स्कोप कॉन्फ़िगर करना होगा जैसे:
# These are found in doorkeeper.rb, but they're commented by default.
# You would use whatever scopes you're wanting to check
default_scopes :public
optional_scopes :write, :update
उपयोगकर्ता और व्यवस्थापक के बीच अंतर करने doorkeeper.rb में default_scopes या optional_scopes jiggering बिना काम कर सकते हैं, लेकिन केवल scoping कि द्वारपाल उम्मीद का एक पक्ष प्रभाव के रूप में एक परम के रूप में गुंजाइश का उपयोग करना।
धन्यवाद धन्यवाद! मैंने इसे बहुत समय पहले छोड़ दिया था लेकिन आज मुझे परियोजना को पूरा करना पड़ा। मैं यहां फिर से इस प्रश्न को पोस्ट करने का इरादा रखता हूं और आपका जवाब पाता हूं। मुझे ठीक इसी की तलाश थी। धन्यवाद! –