Ответ 1
Я тоже застрял там же. Однако серфинг я пришел к следующему выводу.
Сначала давайте узнаем значение SingleSignOn:
Единый вход (SSO) является свойством контроля доступа нескольких связанных, но независимых программных систем. С помощью этого свойства пользователь входит в систему один раз и получает доступ ко всем системам, не запрашивая их снова в каждом из них.
Я думаю, что это какой-то момент. Почему мы не просим снова войти в систему, хотя мы вышли из системы? Его, потому что на симуляторе учетные данные были сохранены на сафари (в первый раз, используя facebook login, ваше приложение открывает сафари или приложение facebook, если установлено).
Информация, которая позволяет вам видеть сообщение "вы уже авторизованы...", находится в Facebook. Чтобы отменить разрешения из вашего приложения, вам нужно будет обратиться к графическому API. FB, в разделе "Удалить" https://developers.facebook.com/docs/reference/api/user/
Отключить вход
Вы также можете позволить людям полностью отменить авторизацию приложения или аннулировать вход в систему, выполнив вызов этой конечной точки API графики: DELETE/{user-id}/permissions
например, в быстрой:
let deletepermission = FBSDKGraphRequest(graphPath: "me/permissions/", parameters: nil, HTTPMethod: "DELETE")
deletepermission.startWithCompletionHandler({(connection,result,error)-> Void in
println("the delete permission is \(result)")
})
Но чтобы полностью выйти из приложения, чтобы пользователю было предложено повторно ввести учетные данные, см. ниже:
Вам нужно выйти из приложения facebook, тогда только вы действительно вышли из системы, а затем только приложение снова запрашивает учетные данные. Это потому, что вы нигде не зарегистрированы в телефоне. Так что правило SSO не применяется здесь. Если вы выходите из системы только из своего приложения (а не из fb), вы будете регистрироваться из-за входа в сафари в вашем случае. Поэтому, вы получите то же сообщение, в котором вы уже авторизованы для этого приложения.
Попробуйте выполнить тестирование на симуляторе, в то время как вы впервые вводите учетные данные, а затем сафари открывается, а вводимые учетные данные сохраняются в сафари. Итак, в следующий раз, когда вы выходите из системы и заходите в приложение, он не запрашивает учетные данные. Поскольку сафари предоставляет его (или приложение facebook, если вы ввели свои учетные данные)
Теперь вы открываете сафари и открываете фейсбук. Вы видите, что facebook уже открыт и информация, которую он берет с сафари автоматически или если у вас установлено приложение facebook, то оттуда. Итак, выйдите из сафари и снова откройте приложение и выйдите из приложения. Затем ваше приложение снова спросит учетные данные.