I dont know exactly this is what you want, But this is how I would do If I was ever gonna need what you need.
First add user to Parse.Installation in beoreSave Trigger:
Parse.Cloud.beforeSave(Parse.Installation, (request) => {
request.object.set("user", request.user);
});
Then Use afterDelete Trigger for Session objects. Get user of session and send them a push notification.
Parse.Cloud.afterDelete(Parse.Session, (request) => {
const query = new Parse.Query(Parse.Installation);
const invalidUser = new Parse.User({id:request.object.get("user").id});
query.equalTo("user",invalidUser);
Parse.Push.send({
where: query,
data: { "type":"invalidSessionToken",
"token":""+request.object.get("sessionToken")}
}, { useMasterKey: true })
.then(function() {
// Push sent!
}, function(error) {
// There was a problem :(
});
});
In your push reciever compare the type value and sessiontoken:
if(pushData.get("type").equals("invalidSessionToken"){
if(pushData.get("token").equals(ParseUser.getCurrentUser().getSessionToken())){
ParseUser.logOut();
}
}
Something like this can be done