Ответы пользователя по тегу Parse Server
  • Как реализовать "Sign in with VK" на Parse.com?

    t0rnik
    @t0rnik
    iOS Developer
    Код для 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.
    Ответ написан
    1 комментарий