Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getSessionToken() not working in Parse

Below is my parse cloud code. I am unable to get user session even when I am using master key. Is it not possible to get User session even if we use mater key to retrieve user?

Parse.Cloud.define("getFSUserSession", getFSUserSession);

function getFSUserSession(request, response) {
  Parse.Cloud.useMasterKey();
  //Removed some codes here to make it short
  var someID = request.params.user;
  var query = new Parse.Query(Parse.User);
  query.equalTo('familySearchID', someID);
  query.ascending('createdAt');
  query.first({useMasterKey: true}).then(function (user) {
      console.log(typeof user.getSessionToken());//this returns function 
      console.log(user.getSessionToken()); //this logs No Message provided
      response.success(user.getSessionToken());
  })  
}
like image 782
Yalamber Avatar asked Jun 18 '26 08:06

Yalamber


1 Answers

I had to disable Require Revocable Sessions to make this work. After disabling Require Revocable Sessions in settings we can make an api request to /1/upgradeToRevocableSession to get the upgraded session token.

Parse.Cloud.define("getFSUserSession", getFSUserSession);

function getFSUserSession(request, response) {
  Parse.Cloud.useMasterKey();
  //Removed some codes here to make it short
  var someID = request.params.user;
  var query = new Parse.Query(Parse.User);
  query.equalTo('familySearchID', someID);
  query.ascending('createdAt');
  query.first({useMasterKey: true}).then(function (user) {
    return Parse.Cloud.httpRequest({
     method: 'POST',
     url: 'https://api.parse.com/1/upgradeToRevocableSession',
     headers: {
      'X-Parse-Application-Id': Parse.applicationId,
      'X-Parse-REST-API-Key': restKey,
      'X-Parse-Session-Token': user.getSessionToken()
     }
    });
  }).then(function (httpResponse) {
    var sessionObject = httpResponse.data;
    if (sessionObject.sessionToken) {
      return Parse.Promise.as(sessionObject.sessionToken);
    }
    return Parse.Promise.error('Unable to get Session token');
  });  
}
like image 103
Yalamber Avatar answered Jun 21 '26 01:06

Yalamber



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!