javascript - Sign in With Twitter using JWT, NodeJS and AngularJS -
i'm having big issue i'm not sure code design issue or i'm trying makes no sense.
i've implemented local sign using passport authentication , jwt route access , permissions. send token front end , save localstorage using angularjs.
everything there works , makes sense. twitter, can't figure out how implement same strategy getting user logged in.
i've set on twitter side, use passport login , registering. don't see how possible send token front end because can use request receive information twitter api.
i redirect twitter login, redirect callback url. comes after that? have relevant code returns jwt. i'm asking how can pass angular in best way possible?
routes:
app.get('/login/twitter', passport.authenticate('twitter')); app.get('/login/twitter/callback', function(req, res) { passport.authenticate('twitter' , function(err, user, info) { if(err) { res.json({ 'message': err }); } var token; token = user.generatejwt(); res.status(200); res.json({ "token" : token }); })(req, res); }); passport:
passport.use(new twitterstrategy({consumerkey: auth.twitterauth.consumerkey, consumersecret: auth.twitterauth.consumersecret, callbackurl: auth.twitterauth.callbackurl}, function(req, key, keysecret, profile, done) { user.findone({'twitter.id' : profile.id}, function(err, user) { if(err) { return done(err); } if(user) { if(!user.twitter.token) { user.twitter.token = key; user.twitter.username = profile.username; user.twitter.displayname = profile.displayname; user.save(function(err) { if(err) { res.json({ 'message': err }); } return done(null, user); }); } return done(null, user); } let newuser = new user(); newuser.twitter.id = profile.id; newuser.twitter.token = key; newuser.twitter.username = profile.username; newuser.twitter.displayname = profile.displayname; newuser.twitter.registerdate = date.now(); newuser.save(function(err) { if(err) { res.json({ 'message': err }); } return done(null, newuser); }); }); }));
Comments
Post a Comment