angularjs - google token passport strategy - 401 Unauthorized error -
in web application built using mean stack i'm trying integrate google sign in using passport - google token strategy , keep getting http error "401 unauthorized error" in angularjs end. i'm guessing issue parameter passed in header have no source verify should format send access token. below angular js service code sends access token server side , server side code handles it.
****angularjs**** $http({ method: 'get', url:"/auth/google/accesstoken", //params:{access_token:self.accesstoken} headers:{ //authorization : "bearer " + self.accesstoken access_token:self.accesstoken } }).then(function successcallback(srresponse){ self.userobj=srresponse.data; $log.log('google passport authenticated user:',srresponse.data); $cookies.putobject('usrobj',srresponse.data); deferred.resolve(self.userobj); },function errorcallback(srresponse){ $log.error("http request user login failed"); deferred.reject(srresponse.statustext); }); //$http google+ **`google token passport strategy`** var googletokenstrategy = require('passport-google-token').strategy; passport.use(new googletokenstrategy ({ clientid: auth.googleauth.clientid, clientsecret: auth.googleauth.clientsecret }, function(accesstoken, refreshtoken, profile, done) { // create or update user, call done() when complete... process.nexttick(function(){ ubcust.findone({'email' : profile.emails[0].value}, function(err, user) { if (err) return done(err); if(user) { if(user.facebook.id) { user.google.id = profile.id; user.google.token = accesstoken; user.google.fname = profile.displayname; user.google.lname = profile.name.familyname; user.fname = profile.displayname; user.lname = profile.name.familyname; user.email = profile.emails[0].value; user.save(function(err){ if (err) throw err; return done(null,user); }); } else return done(null,user); } else { var newuser = new ubcust; newuser.google.id = profile.id; newuser.google.token = accesstoken; newuser.google.fname = profile.displayname; newuser.google.lname = profile.name.familyname; newuser.fname = profile.displayname; newuser.lname = profile.name.familyname; newuser.email = profile.emails[0].value; newuser.save(function(err){ if (err) throw err; return done(null,newuser); }); console.log(profile); } //done(null, profile, tokens); }); //findone });//nexttick } )); app.get('/auth/google/accesstoken', passport.authenticate('google-token',{session: false}), function (req, res) { // req.user console.log('im in google auth middleware'); if(req.user){ req.user.menu=usermenu; console.log('fb user authenticated'); res.send(req.user); } else{ console.log('no entry'); res.sendstatus(401); } } );
Comments
Post a Comment