You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am getting accessToken on front End. however when i send the accessToken using POST to server i am not able to validate the accessToken and retrieve profile information. I get the accessToken
but cannot make it work in back end (NodeJS)
Code On Front End :
// Authenticate For Cordov ased FB Login Only.
//There is a Web Based Login Also For Other Device
log = console.log.bind(console);
//cordova Bsed Auth with AccessToken
app.post('/auth/facebook/cordova', function(req, res) {
log("/auth/cordova/facebook");
var fields = ['id', 'email', 'first_name', 'last_name', 'link', 'name'];
var graphApiUrl = 'https://graph.facebook.com/v2.5/me?fields=' + fields.join(',');
var accessToken = req.body.accessToken || req.query.accessToken || req.param["accessToken"];
log("Access Token :");
log(accessToken);
// Step 2. Retrieve profile information about the current user.
request.get({ url: graphApiUrl, qs: accessToken, json: true }, function(err, response, profile) {
if (err) {
return res.status(401).send({ message: err });
}
// See if User Exist Or Not Else Create A New User
UserProfileModel.findOne({ profile: profile.id }, function(err, existUser) {
log("After Query User :");
log(existUser);
if (err) {
res.send({ message: 'Some Error Occured', token: undefined });
}
if (existUser) {
log("Existing User :");
// Update record and chnage flag values
log(existUser);
var token = createJWT(existUser);
res.send({ message: 'Existing User', profile: existUser, token: token, status: true });
} else {
log("New User Found :");
log(profile);
var user = new UserProfileModel();
user.profile = profile.id || profile.userID;
user.picture = 'https://graph.facebook.com/' + profile.id + '/picture?type=large';
user.fullName = profile.name;
user.email = profile.email;
user.isNewProfile = true;
user.isProfileCompleted = false;
log(user);
user.save(function(errSave, saved) {
if (errSave) {
res.status(401).send({ message: 'Duplicates Found', token: undefined, error: errSave, status: false });
}
log("User Saved Successfully :");
var token = createJWT(user);
res.send({ token: token, profile: user, status: true });
});
}
});
});
});
Please suggest what i am doing wrong here. I am trying to use AccessToken here to fetch Profile details and then save it to MongoDB is the user is new or return the profile details if exisiting user exist.
Thanks
Siddharth
The text was updated successfully, but these errors were encountered:
siddmegadeth
changed the title
Not Able to Validate Server Side Login Using AccessToken
Not Able to Validate Server Side Login Using AccessToken and Fetch Profile Information
May 27, 2019
I am getting accessToken on front End. however when i send the accessToken using POST to server i am not able to validate the accessToken and retrieve profile information. I get the accessToken
but cannot make it work in back end (NodeJS)
Code On Front End :
// Authenticate For Cordov ased FB Login Only.
//There is a Web Based Login Also For Other Device
On The Backend using NODEJS
Please suggest what i am doing wrong here. I am trying to use AccessToken here to fetch Profile details and then save it to MongoDB is the user is new or return the profile details if exisiting user exist.
Thanks
Siddharth
The text was updated successfully, but these errors were encountered: