2012-09-06 16 views
5

मैं OAuth के माध्यम से Google के साथ प्रमाणित करने के लिए Passport.js का उपयोग कर रहा हूं (मैं पासपोर्ट-google-oauth रणनीति का उपयोग कर रहा हूं)। यह ठीक काम करता है, लेकिन मैं वर्तमान में उपयोगकर्ता को "/" पर रीडायरेक्ट कर रहा हूं, और मैं उन्हें "/" प्लस वर्तमान हैश टैग पर भेजना चाहता हूं। मैं एक क्वेरी स्ट्रिंग पैरामीटर में हैश मान भेज सकता हूं, लेकिन मैं उस मान को उस ऑब्जेक्ट की callbackURL प्रॉपर्टी पर सेट करने के लिए प्रतीत नहीं कर सकता जिसे मैं प्रमाणित करने के लिए पास कर रहा हूं।पासपोर्ट.जेएस का उपयोग कर मैं वर्तमान हैश स्थान पर कैसे लौट सकता हूं?

क्या कोई ऐसा करने के सही तरीके के रूप में उदाहरण या स्पष्टीकरण प्रदान कर सकता है? मुझे क्वेरी स्ट्रिंग का उपयोग करने के लिए नहीं देखा गया है, यह बस सबसे सीधा-आगे मार्ग लग रहा था, लेकिन मैं एक सत्र चर या कुछ और उपयोग करने के लिए खुला हूं, अगर यह आसान या बेहतर अभ्यास होगा।

धन्यवाद।

+0

"हैश टैग" द्वारा आप किसी URL के टुकड़ा भाग मतलब है, तो एक ही रास्ता पता करने के लिए यह है कि आप इसे अपने आप को स्थापित कर दें तो ध्यान रखें जब अनुरोध करने की है, जिन्हें ब्राउज़र कभी नहीं है कि जानकारी भेज सकता है। – ebohlman

+0

@ एबह्लमैन यह बस असत्य है। – Beau

उत्तर

3

आप सत्र में वापसी यूआरएल संग्रहीत करके इस प्रभाव को प्राप्त कर सकते हैं।

// server 
var app, express; 

express = require('express'); 

app = express(); 

app.configure(function() { 
    app.use(express.cookieSession({secret: 'shh'})); 
}); 

app.get('/auth/twitter', function(req, res, next) { 
    // to return to '/#/returnHash', request this url: 
    // http://example.com/auth/twitter?return_url=%2F%23%2FreturnHash 

    // on the client you can get the hash value like this: 
    // encodeURIComponent("/"+window.location.hash) 
    req.session.return_url = req.query.return_url; 
    next(); 
}, passport.authenticate('twitter')); 

app.get('/auth/twitter/callback', passport.authenticate('twitter', { 
    failureRedirect: '/login' 
}), function(req, res) { 
    var url = req.session.return_url; 
    delete req.session.return_url; 

    // redirects to /#/returnHash 
    res.redirect(url); 
}); 
संबंधित मुद्दे