Можно ли вызвать собственное диалоговое окно входа в ios Facebook только с веб-страницы (а не с веб-приложения)?
У нас есть приложение ios, которое использует собственный вход в Facebook просто.
Затем у нас также есть веб-сайт (приложение - это в основном оптимизированный клиент для него), где люди могут также войти в систему через Facebook. Когда они открывают наш веб-сайт в мобильном сафари, они направляются на страницы Facebook для аутентификации там, и это работает, но.. он все еще далек от родного, и пользователи должны повторно указывать учетные данные, которые они часто имеют в ios уже.
Итак, можно ли как-то запустить аутентификацию системы fb только для веб-страницы (возможно, используя какую-то умную схему URL?) и получить предоставленный токен обратно в веб?
Ответы
Ответ 1
Трудный путь
Как описано здесь http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified#mobile-apps, вы можете найти схему URL-адресов для запуска собственного приложения iOS для авторизации приложения:
fbauth://authorize?redirect_uri=[redirect_uri]&client_id=[client_id]&response_type=token
Но если вы вызываете эту ссылку, невозможно перенаправить. Вы можете попытаться взломать это перенаправление, но, возможно, вы не смогли найти выход.
A безопасный способ, чтобы решить эту проблему, - использовать токен SSO для аутентификации пользователя в вашем приложении, когда он входит в систему, а затем в Safari переадресовать с настраиваемым URL-адресом для вашего APP, которые выполняют как мост к FB App через токен, хранящийся в вашем APP. После проверки подлинности FB вы можете напрямую перенаправить пользователя на целевую страницу в Safari. Как сказал @Lego, это альтернативный способ прямого аутентификации, который можно было бы сделать, перейдя в специальный URL, используемый FB.
Ответ 2
Нет, пока нет возможности напрямую аутентифицировать пользователя через собственное приложение Facebook, но можно аутентифицировать пользователя с помощью специальной схемы URL, которая открывает собственное приложение iOS, которое затем обрабатывает поток аутентификации:
-
Пользователь аутентифицируется из вашего приложения iOS. Затем вы сохраняете логин пользователя ( не пароль) в своем приложении (т.е. С помощью NSUserDefaults
).
-
Затем пользователь открывает вашу веб-страницу в Mobile Safari. Вы перенаправляете пользователя с помощью настраиваемой схемы URL-адресов в приложение (т.е. Используя myapp://authenticate). Документация Apple по реализации пользовательских схем URL: клик
-
Теперь, если у вас активный сеанс FB в приложении iOS, вы можете либо перенаправить пользователя обратно на целевую страницу в Mobile Safari, передав токен доступа через параметр url get, либо вы сначала повторно аутентифицируете пользователь, отображающий окно входа в систему с предварительно заполненным именем пользователя, которое вы ранее сохраняли в приложении iOS (шаг 1), а затем перенаправляете пользователя на целевую страницу, снова все зависит от состояния сеанса и ваших потребностей в безопасности.
Ответ 3
Для открытия приложения facebook вы можете использовать схему пользовательских URL-адресов. Но я не уверен, что вы можете аутентифицировать пользователя. В случае, если вы могли бы также, это будет ограничено учетной записью fb, которая уже настроена на этом устройстве. Лучше попробуйте использовать facebook api или что-то.
Ответ 4
Я не получу ваш вопрос точно, но я думаю, что в соответствии с вашим вопросом вы хотите создать приложение fb для входа в сафари или в своем пользовательском веб-представлении.
- это прекрасно?
согласно моему знанию, веб-представление - это другое дело, а родное приложение - другое.
если вы являетесь Войти в веб-представление, тогда вам не нужно проверять что-либо маркер или что-то еще, потому что оно даст вам выход из системы.
но если вы входите в свое приложение, то "developer.facebook.com" определенно поможет вам.
и да, вы будете делать большинство вещей в своем приложении, как это делает родное приложение facebook.
Надеюсь, что это поможет....