Вход через Facebook по-прежнему возвращает пользователя, хотя вход был отменен

Я использую Parse SDK для поддержки входа через Facebook. Однако, если я отменю режим входа в систему (кнопка «Не сейчас» внизу слева), то следующий метод все равно вернет пользователя.

[PFFacebookUtils logInWithPermissions:permissions block:^(PFUser *user, NSError *error) {
        if (!user) {
            NSLog(@"Uh oh. The user cancelled the Facebook login.");
        } else if (user.isNew) {
            NSLog(@"User signed up and logged in through Facebook!");
        } else {
            NSLog(@"User logged in through Facebook!");
        }
 }];

Обычно он должен переходить к первому оператору if, но странно, что объект PFUser не равен нулю, и он переходит ко второму оператору if. Это означает, что он успешно создал пользователя в бэкэнде, хотя вход в систему был отменен.

Я запрашиваю следующие разрешения:

NSArray *permissions = @[@"public_profile", @"email", @"user_friends"];

person gpichler    schedule 12.11.2014    source источник
comment
Какие поля установлены в новом PFUser? Я мог бы видеть подобную проблему.   -  person David Schwartz    schedule 13.11.2014
comment
Я думаю, это только имя пользователя.   -  person gpichler    schedule 13.11.2014
comment
Является ли имя пользователя длинной буквенно-цифровой строкой?   -  person David Schwartz    schedule 13.11.2014
comment
Да, это. Я думаю, что это просто хешированная строка имени пользователя, я также вижу правильный идентификатор Facebook в базовом модуле Parse Core (данные).   -  person gpichler    schedule 13.11.2014
comment
Да, я тоже это вижу. Какая у вас версия библиотеки Parse? Это может быть ошибка на их стороне   -  person David Schwartz    schedule 13.11.2014
comment
@DavidSchwartz Я использую SDK версии 1.4.2.   -  person gpichler    schedule 14.11.2014


Ответы (1)


Это проблема, с которой я сталкивался больше года, и с которой мне приходилось иметь дело локально. В конечном итоге я решил эту проблему, удалив этого нового PFUser с сервера, если пользователь отменил процесс регистрации. Он также настроен так, что если они не отменят (покинут приложение), а затем вернутся, они смогут продолжить/завершить процесс регистрации. Я не знаю, как ваше приложение настраивается или как его использовать, но для меня не составило труда добавить действие отмены регистрации. Оттуда удаление текущего прогресса до создания нового пользователя просто имеет смысл.

person BlueBear    schedule 27.01.2015