का उपयोग कर प्रमाणीकरण (क्रमबद्धता कार्यों के साथ अद्यतन कोड - अभी भी/failedRedirect पर रीडायरेक्ट)Node.js उपयोगकर्ता पासपोर्ट
मैं सरल उपयोगकर्ता नाम/पासवर्ड प्रमाणीकरण पासपोर्ट पैकेज का उपयोग, लेकिन नाकाम रहने के चलते रहने के लिए कोशिश कर रहा हूँ। नीचे दिए गए उदाहरण में मैंने यह सत्यापित करने का प्रयास किया है कि प्रमाणीकरण मूल रूप से हमेशा वैध प्रमाणीकरण लौटाता है (भले ही क्या हो जाता है), लेकिन किसी कारण से यह असफल लॉगिन लिंक पर विफल रहता है और पासपोर्ट रीडायरेक्ट करता है।
यदि कोई इस बात को समझने में मेरी सहायता कर सकता है कि इस उदाहरण को कुछ भी प्रमाणित करने के लिए कैसे प्राप्त किया जाए, तो मुझे वहां से प्रबंधित करने में सक्षम होना चाहिए।
कोड coffeescript में है:
express = require "express"
passport = require "passport"
LocalStrategy = require("passport-local").Strategy
passport.use(new LocalStrategy((username, password, done) ->
console.log "LocalStrategy invoked"
done(null, {id: 1, name: "Marius"})
))
passport.serializeUser (user, done) ->
done null, user
passport.deserializeUser (obj, done) ->
done null, obj
app = express.createServer()
app.configure ->
app.use express.bodyParser()
app.use express.static("./public")
app.use express.cookieParser("SOMESECRET")
app.use express.session
secret: "SOMESECRET"
cookie:
maxAge: 60000
app.use passport.initialize()
app.use passport.session()
app.set "view", "./srv/views"
app.set "view engine", "jade"
app.get "/login", (req, res) ->
res.send "login page"
app.post "/login", passport.authenticate("local",
failureRedirect: "/failedRedirect"
successRedirect: "/successRedirect"
failureFlash: true)
app.listen 8082
हल: ठीक है, मेरा मानना है कि वहाँ कुछ कारणों से मैं यह काम नहीं कर पाने सकते थे। धारावाहिक सामान एक हो सकता है (मैंने परीक्षण नहीं किया है), लेकिन जब जेरेड ने कहा कि उन्हें जरूरी है, तो मैं उन्हें छोड़ रहा हूं (वह पासपोर्ट के लेखक हैं)। अन्य भ्रम व्यक्त संस्करणों और एनपीएम के साथ मेरे भ्रम से संबंधित हो सकता है। मेरा मानना है कि मैंने एक्सप्रेस के नवीनतम वी 2 दोनों का परीक्षण किया है, लेकिन मैंने v3 का भी परीक्षण किया है, जिसे मैं अभी चल रहा हूं। संस्करण तीन के लिए, आपको संभवत: connect-flash
मॉड्यूल को गीथब पर भी देखना चाहिए, क्योंकि जेरेड के उदाहरणों में उपयोग की जाने वाली "फ्लैश" सामग्री के लिए कुछ को व्यक्त v3 से बाहर ले जाया गया था (इसलिए मॉड्यूल इसे वापस रखता है ...)। और अंत में, सुनिश्चित करें कि आप उचित नामित इनपुट नामों का उपयोग कर पोस्ट करें (username
और password
डिफ़ॉल्ट रूप से)।
प्रश्न में अद्यतन कोड शामिल करने के लिए प्रश्न में अद्यतन कोड serialization कार्यों, लेकिन प्रमाणीकरण अभी भी मेरे अंत में विफल रहता है। क्या अद्यतन कोड आपके अंत में सफलतापूर्वक प्रमाणीकृत है? धन्यवाद .. –
हाँ, यह करता है। क्या आपका कोड "लोकलस्ट्रेटी ने" संदेश मुद्रित किया है। यह 'app.use (express.errorHandler ({dumpExceptions: true, showStack: true}) को माउंट करने में मदद कर सकता है;) और देखें कि क्या कोई अपवाद फेंक दिया गया है। –
मेरे अंत में भी "आह्वान" संदेश प्रदर्शित नहीं होता है। मैं आपकी गलती का प्रयास करूंगा, कुछ भी देखने पर यह देखने के लिए हैंडलर चीज। –