में दिखाए बिना मैं कैसे पासपोर्ट-फेसबुक का उपयोग कर रहा हूं, मैं एक मीन स्टैक वेबपैप में लॉगिन करने के लिए पासपोर्ट-फेसबुक का उपयोग कर रहा हूं। सफल लॉगिन के बाद, मैं एक JSON वेब टोकन (jwt) उत्पन्न करना चाहता हूं और अपने एसपीए में एक पृष्ठ पर रीडायरेक्ट करना चाहता हूं। (res.redirect ('/ #/posts /' + doc.generateJWT()); - कृपया नीचे दिए गए कोड को देखें)।पासपोर्ट-फेसबुक के साथ जेसन वेब टोकन (jwt) को रीडायरेक्ट यूआरएल
मेरा प्रश्न है: मैं यूआरएल में इसे दिखाए बिना रीडायरेक्ट पेज पर जेडब्ल्यूटी कैसे भेजूं?
कोड:
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
passport.use(new FacebookStrategy({
clientID: FACEBOOK_APP_ID,
clientSecret: FACEBOOK_APP_SECRET,
callbackURL: FACEBOOK_CALLBACKURL
},
function(accessToken, refreshToken, profile, done) {
process.nextTick(function() {
User.findOne({'fbid':profile.id},function(err, docs) {
if (err){
//console.log('Error in SignUp: '+err);
return res.status(401).json(info);
}
else {
if (docs) {
//console.log('User already exists');
globalid = profile.id;
return done(null,docs);
} else {
// if there is no user with that fbid
// create the user
var newUser = new User();
// set the user's local credentials
newUser.fbid = profile.id;
globalid = profile.id;
newUser.firstname = profile.name.givenName;
newUser.lastname = profile.name.familyName;
newUser.gender = profile.gender;
if(profile.emails){
newUser.fbemail = profile.emails[0].value;
};
newUser.fblink = profile.profileUrl;
newUser.fbverified = profile.verified;
// save the user
newUser.save(function(err) {
if (err){
//console.log('Error in Saving user: '+err);
return res.status(401).json(info);
}
//console.log('User Registration succesful');
return done(null, newUser);
});
}
}
});
});
}));
var router = express.Router();
router.get('/auth/facebook',
passport.authenticate('facebook', { scope : 'email' }
));
router.get('/auth/facebook/callback',
passport.authenticate('facebook', { session: false, failureRedirect: '/'}),
function(req, res,done) {
var redirection = true;
User.findOne({ 'fbid': globalid }, function (err, doc){
//console.log("Generating token");
doc.token = doc.generateJWT();
doc.save(function(err) {
if (err){
//console.log('Error in Saving token for old user: '+err);
return res.status(401).json(info);
}
else
{
//console.log('User Login succesful');
redirection = doc.mobileverified;
//console.log(redirection);
//return done(null, doc);
if(doc.mobileverified === true){
console.log("Token:",doc.generateJWT());
res.redirect('/#/posts/'+ doc.generateJWT());
}
else{
console.log("Token:",doc.generateJWT());
//res.json({token: doc.generateJWT()});
res.redirect('/#/register/' + doc.generateJWT());
}
}
});
});
});
पहले से कई धन्यवाद!
असल में भले ही json के रूप में टोकन लौट json के रूप में प्रतिक्रिया भेजने के लिए आप JSON में हेडर के रूप में इसे भेजते हैं, क्लाइंट के लिए कॉलबैक के कारण इसे पकड़ना असंभव है। –