मैंने सिनात्रा दस्तावेज़ों को देखा और वे केवल HTTP प्रमाणीकरण का संदर्भ लेते हैं। मैं एक एलडीएपी सर्वर के माध्यम से अधिकृत/प्रमाणीकृत उपयोगकर्ता के आधार पर मार्गों तक पहुंच नियंत्रित करने का एक बहुत ही आसान तरीका ढूंढ रहा हूं।मैं वास्तव में एक सरल सिनात्रा एलडीएपी प्रमाणीकरण कैसे कर सकता हूं?
मैं पहले से ही एक वर्ग है कि LDAP हिस्से का कार्य करता है और एक LDAP ऑब्जेक्ट यदि उपयोगकर्ता सफलतापूर्वक प्रमाणीकृत और नहीं के बराबर है यदि वे नहीं है का निर्माण किया है:
>>DirectoryUser.authenticate('user', 'password')
#<DirectoryUser:0x007ffb589a2328>
मैं इस का उपयोग कर सकते है, तो यह निर्धारित करने के वे सफलतापूर्वक प्रमाणीकृत या नहीं किया गया है।
एक अगला कदम मुझे लगता है कि LDAP उपयोगकर्ता और पासवर्ड इकट्ठा करने के लिए एक रूप प्रदान करता है एक सरल सिनात्रा एप्लिकेशन में इस ब्याह करने के लिए चाहते हैं के रूप में:
require 'directoryUser'
require 'sinatra'
enable :sessions
get '/form' do
username = params[:username]
password = params[:password]
haml :form
end
तब मैं केवल 'DirectoryUser' वस्तु मार्गों अनुमति देना चाहते हैं मौजूद है:
get '/protected' do # Only if DirectoryUser object exists
"This route is protected"
end
get '/unprotected' do
"This route is unprotected"
end
मैंने इसका उत्तर खोजने का प्रयास करने में कई घंटे बिताए हैं लेकिन अब तक मेरे लिए काम करने वाली कुछ भी नहीं लग रही है।
शानदार! - मैं इसे अभी आज़माउंगा और आपको बता दूंगा कि यह कैसा चल रहा है। उत्तर देने के लिये धन्यवाद। – user1513388
यह पूरी तरह से काम किया - मदद करने के लिए धन्यवाद! – user1513388