Можно ли вызвать собственное диалоговое окно входа в 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.

Надеюсь, что это поможет....