11

我们有一个使用本机 Facebook 登录的 ios 应用程序。

然后我们还有一个网站(应用程序基本上是它的优化客户端),人们也可以通过 Facebook 登录。当他们在移动 safari 中打开我们的网站时,他们会被定向到 Facebook 页面以在那里进行身份验证并且它可以工作,但是......它仍然远离原生,用户必须重新输入他们在 ios 中经常拥有的凭据。

那么是否有可能以某种方式仅针对网页启动系统 fb 身份验证(也许使用一些巧妙的 URL 模式?)并获得授予网络的令牌?

4

4 回答 4

5

困难的方式 如此处所述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

但是,如果您调用该链接,则不可能进行重定向。您可以尝试破解该重定向,但也许您找不到出路。

解决该问题的一种安全方法是在用户登录时使用 SSO 令牌对您的应用程序上的用户进行身份验证,然后在 Safari 上进行重定向,并使用指向您的 APP 的自定义 url,通过存储的令牌作为 FB 应用程序的桥梁在您的应用程序中。FB 身份验证后,您可以直接将用户重定向回您在 Safari 中的登录页面。正如@Lego 所说,这是一种直接验证的替代方法,可以通过深入到 FB 使用的自定义 URL 来进行。

于 2013-10-06T10:45:22.797 回答
0

要打开 Facebook 应用程序,您可以使用自定义 URL 方案。但我不确定你是否可以从中验证用户身份。如果你也可以,那么它将仅限于已在该设备应用程序上配置的 fb 帐户。所以最好尝试使用 Facebook api 或其他东西

于 2013-10-07T13:02:15.487 回答
0

不,目前还不能通过本机 Facebook 应用程序直接对用户进行身份验证,但可以使用自定义 URL 方案对用户进行身份验证,该方案打开您的本机 iOS 应用程序,然后处理身份验证流程:

  1. 用户使用您的 iOS 应用程序进行本机身份验证。然后,您将用户登录名(不是密码)存储在您的应用程序中(即使用NSUserDefaults)。

  2. 然后用户在 Mobile Safari 中打开您的网页。您通过自定义 url 方案将用户重定向到您的应用程序(即使用 myapp://authenticate)。关于实现自定义 URL 方案的 Apple 文档:单击

  3. 现在,如果您的 iOS 应用程序中有一个活动的 FB 会话,您可以直接将用户重定向回 Mobile Safari 中的登录页面,通过 url get 参数传递访问令牌,或者您首先重新验证用户身份,显示登录信息使用您之前存储在 iOS 应用程序中的用户名进行查看(步骤 1),然后将用户重定向到您的登录页面,这一切都取决于会话状态和您的安全需求。

于 2013-10-01T19:49:59.440 回答
-1

我没有完全得到您的问题,但我认为根据您的问题,您想在 safari 或自定义 Web 视图中创建 fb 应用登录。

这是完美的吗?

据我所知,网络视图是不同的东西,而原生应用程序是不同的东西。

如果您在 Web 视图中登录,则无需检查任何令牌或其他东西,因为它会给您 Logout 的东西。

但如果您在您的应用程序中登录,那么“developer.facebook.com”肯定会对您有所帮助。
是的,你会在你的应用程序中做大部分事情,就像原生 facebook 应用程序一样。

希望它有帮助....

于 2013-10-05T10:00:01.630 回答