2014-01-06 143 views
9

我已经看到了这个问题的几种风格,但没有确切的具体,也没有回答,所以试图自己。原生Facebook登录体验通过浏览器登录

我想通过浏览器建立Facebook登录体验到我的基于Facebook的应用程序,这将需要用户尽可能不记得他们的密码。这意味着,如果

  • 他们通过他们的桌面浏览器登录并已登录,只会要求他们“OK”的权限
  • 他们从他们的移动浏览器登录,并通过记录在其相应的本地应用程序(Android/iOS),它将简单地将它们重定向到本地应用程序,请求应用程序权限并将它们重定向到浏览器上的成功页面,这些浏览器从任何浏览器登录并且当前未登录到其上Facebook以任何形式,他们必须输入他们的密码并进行身份验证(无论是本地还是浏览器,这并不重要)

我知道第一个如何完成 - 这非常简单,使用JS SDK。第二点是更艰难的一点。

我知道现有的Android和iOS定制URL方案,但没有具体的真正提到如何可以用于Facebook应用程序的认证和/或授权。有没有人有任何想法如何做到这一点?

谢谢!

+0

回答我所经历的,当你在iOS中有2个不同的账户之一,野生动物园,一个在本机应用程序登录,然后SDK首先检查本机应用程序的帐户,并征得同意,如果有没有帐户设置,然后它会去Safari浏览器,并寻找活动会话,否则重定向到登录页面 – Retro

+0

所以,你基本上想要在他们的本地应用程序(他们可能会登录)在浏览器请求会话令牌? – PSIXO

+0

是的 - 它应该从浏览器 - >验证本地应用程序 - >回到浏览器回调url – SalGad

回答

1

在iOS中使用iOS版的Facebook SDK。它将根据可用资源在不同情况下有效处理登录过程。看看这个答案,了解不同的登录流程

Integrating facebook

+0

没有我的意思是,我正在浏览器上开发应用程序。无论他们访问哪个平台,是否可以通过各自的原生应用程序登录它们? – SalGad

1

你要找的单点登录行为 - 在Facebook中,使用原生SDK,并设立SSO指令。它包括在设置中输入你的捆绑ID,并设置一个引用URL名称(通常是你的应用的名称)。那么会发生什么 - 如果你启动safari移动版,并登录到Facebook。然后,通过良好的集成SSO启动您的应用。然后,它不会要求您登录/传递,因为它知道您已通过浏览器进行身份验证。与Android相同。

+0

这假设我在每个平台上都有一个本机应用程序。假设我唯一的应用程序在网络上并可通过浏览器访问。有没有一种方法可以通过本地应用在Facebook中验证和授予我的应用的权限,而无需用户再次通过浏览器登录? – SalGad

+0

因此,情况是,用户在移动设备上,使用Safari浏览器查看您的站点,并使用FB登录。当他们启动本地FB应用程序时,它是否会检测到登录信息并直接转到应用程序,而无需再次登录用户?如果你设置你的网站的权利,我的经验是,它会工作。请参阅FB SSO的网页开发。 –