मैं एक्सप्रेस 4 का उपयोग कर रहा है, जहां मैं एक मार्ग passport.js द्वारा संरक्षित, इस तरह है:एक्सप्रेस 4 राउटर पर कुछ मार्गों को प्रमाणीकृत करने का बेहतर तरीका क्या है?
var media = require('express').Router();
media.get('/', function(req, res) {
// provide results from db
});
media.post('/', passport.authenticate('bearer'), function(req, res) {
// This route is auth protected
});
तो - संग्रह मार्गों (अधिकतर) मेरे लिए संरक्षित किया जाना चाहिए नहीं किया जाएगा और/अद्यतन रूट बनाने चाहिए । लेकिन इसके लिए मुझे अपनी सभी रूट फाइलों में पासपोर्ट पास करने की आवश्यकता है (मेरे पास अभी तक 7 है), फिर उनमें से कुछ को मिडलवेयर के रूप में जोड़ने के लिए।
मैं संस्करण है जहाँ आप कुछ इस तरह कर सकते हैं की तरह है:
var router = require('./my-router');
app.use('/api/route', passport.authenticate('bearer'));
app.use('/api/route', router);
लेकिन इस सभी मेरी मार्गों पर प्रमाणन की आवश्यकता होगी।
क्या पासपोर्ट पास करने के लिए एक बेहतर तरीका है?
, वाह बेन, कि वास्तव में बहुत स्मार्ट है कर सकते हैं! मुझे बस नामकरण ठीक करने की जरूरत है। – Zlatko
यह प्रतिभा होगी, केवल मार्ग पथ समान होने पर ही यह काम नहीं करता है। मैंने एक्सप्रेस 4, पासपोर्ट 0.3.2 पर इसी कार्यान्वयन की कोशिश की है, और प्रमाणीकरण पर जांच मार्ग पथ का पालन करती है, राउटर उदाहरण नहीं। इस मामले में सभी मार्ग मेरे लिए संरक्षित किए जा रहे हैं। – jbodily
यदि पथ पथ समान हैं तो यह काम नहीं करेगा, यह कैसे पता चल जाएगा कि आप किस का उपयोग करना चाहते हैं? आपके द्वारा परिभाषित पहला मार्ग प्राथमिकता लेगा। –