Код для parse cloud ищет пользователя с переданным vkId и возвращает токен
Parse.Cloud.define("getTokenByVkId", function(request, response) {
Parse.Cloud.useMasterKey();
var vkId = request.params.vkId;
if(!vkId) {
response.error("wrong parameters");
return ;
}
var query = new Parse.Query(Parse.User);
query.equalTo("vkId", vkId);
query.first({
success: function(user) {
response.success(user.getSessionToken());
},
error: function(error) {
response.error(error.description);
}
});
});
Отправляем vkId авторизированного пользователя нашей функции в Parse Cloud и в ответ получаем токен по которому авторизируемся в самом Parse
iOS objective-c пример
//call parse cloud function
[PFCloud callFunctionInBackground:@"getTokenByVkId"
withParameters:@{@"vkId": vkUserId}
block:^(NSString* token, NSError *error) {
if (!error){
[PFUser becomeInBackground:token block:^(PFUser *user, NSError *error) {
<#code#>
}];
}else{
//TODO: handle error
}
Лично я при регистрации нового пользователя в Parse, сгенерированный пароль сохраняю в keychain и при повторном входе сначало проверяю его наличие и если его нет (скорее всего приложение запущено с другого устройства), то выполняю вход с помощью приведенного кода ParseCloud.