然后我们还有一个网站(该应用程序基本上是其优化客户端),人们也可以通过Facebook登录。当他们在移动Safari中打开我们的网站时,他们会被引导到Facebook页面进行身份验证,并且这样操作是可行的,但是...它仍然远非本地,并且用户通常必须重新输入他们已经在iOS中拥有的凭据。
那么是否有可能仅为一个Web页面启动系统fb身份验证(也许使用一些聪明的URL模式?)并将授予的令牌返回给Web?
然后我们还有一个网站(该应用程序基本上是其优化客户端),人们也可以通过Facebook登录。当他们在移动Safari中打开我们的网站时,他们会被引导到Facebook页面进行身份验证,并且这样操作是可行的,但是...它仍然远非本地,并且用户通常必须重新输入他们已经在iOS中拥有的凭据。
那么是否有可能仅为一个Web页面启动系统fb身份验证(也许使用一些聪明的URL模式?)并将授予的令牌返回给Web?
困难的方法 如这里所述,您可以找到URL方案来触发本机iOS应用程序进行应用程序授权:
fbauth://authorize?redirect_uri=[redirect_uri]&client_id=[client_id]&response_type=token
但是,如果你调用该链接,将不可能进行重定向。你可以尝试黑客攻击该重定向,但也许找不到出路。
解决这个问题的一种安全方法是在用户登录时使用SSO令牌来认证他在应用上的身份,并且在Safari上使用自定义URL重定向到你的应用,通过在你的应用中存储的Token作为FB应用程序的桥梁。在FB认证后,您可以直接将用户重定向回Safari中的登陆页面。正如@Lego所说,这是一种替代方案,可以通过深入了解FB使用的自定义URL进行直接验证。
用户在您的iOS应用程序中进行本地身份验证。然后,您将用户登录信息(而不是密码)存储在您的应用程序中(即使用NSUserDefaults
)。
然后,用户在移动Safari中打开您的网页。您通过自定义URL方案将用户重定向到您的应用程序(即使用myapp://authenticate)。有关实现自定义URL方案的Apple文档:click
现在,如果您的iOS应用程序中有一个活动的FB会话,您可以直接通过url get参数将访问令牌传递给用户,并将其重定向回移动Safari中的着陆页面,或者您首先重新对用户进行身份验证,显示填充了用户名的登录视图,这些用户名在之前已经存储在您的iOS应用程序中(步骤1),然后根据会话状态和安全需求再次将用户重定向到您的着陆页面。
要打开 Facebook 应用程序,您可以使用自定义 URL 方案。但我不确定是否可以从中验证用户。如果您也可以,则将限制为已在该设备应用上配置的 fb 帐户。因此最好尝试使用 Facebook API 或其他内容。
我不太明白你的问题,但我认为根据你的问题,你想在Safari或自定义的Web视图中创建fb应用程序登录。
这样完美吗?
据我所知,Web视图和本机应用程序是不同的东西。
如果您在Web视图中登录,则无需检查任何令牌或其他内容,因为它会在那里提供注销功能。
但是,如果您在应用程序中登录,则“developer.facebook.com”肯定会帮助您。
是的,您将像本机Facebook应用程序一样在应用程序中完成大部分工作。
希望能有所帮助....