TMC*_*TMC 397 facebook facebook-graph-api ios4 ios
目标: 允许用户使用Facebook进行身份验证,进入需要访问我正在运行的受保护Web服务的iOS应用程序.
假设: 对于那些选择不使用Facebook登录的用户,有一个原生身份验证(和注册)系统.
细节:
我很惊讶Facebook在他们的开发者文档中没有这方面的最佳实践.所有现有文档要么假设您正在构建一个网站的FB auth,要么是一个没有需要身份验证的服务的独立移动应用程序.
这是我对如何设计这个问题的初步想法,但是想要验证它是否正确.
我们的服务器使用访问令牌与FB图形API进行通信,以(a)验证令牌和(b)获取该访问令牌的FB用户ID.
例如,我们的服务器将调用https://graph.facebook.com/me/?access_token=XYZ,它将返回JSON对象中的配置文件信息
假设它有效,我们的服务器从JSON对象中提取用户ID并检查用户是否已经拥有一个帐户.如果是这样,我们会向客户端发出我们自己的身份验证票据以用于该会话.如果用户没有帐户,我们使用Facebook用户ID创建一个新帐户,分配我们自己的唯一用户ID并发出我们的身份验证票.
这对我来说似乎是正确的方法,但不确定我是否遗漏了一些疯狂的基本内容并走错了(复杂的)路径.
Dan*_*Ray 77
我自己刚刚处理过这个问题,这就是我的一部分:
在您的第5步中...用户可以注册一个与您的Facebook ID完全分开的帐户,对吧?然后在其他时间他们用Facebook登录....你刚刚创建了第二个帐户并丢失了他们的第一个帐户.
需要有一种方法登录到您的Web服务,然后登录到Facebook,并捕获Facebook ID和本地帐户之间的关联.
除此之外,你的计划听起来很稳固.
更新:Facebook在此处添加了一个概述此类情景的文档
zoo*_*ypt 28
如Facebook所述,使用https将身份验证令牌传输到您的服务器
共享访问令牌
我们的数据政策明确禁止与任何其他应用共享您的应用的访问令牌.但是,我们允许开发人员在本机实现和同一App的服务器实现之间共享令牌(即使用相同的App ID),只要使用HTTPS进行传输即可.
iva*_*ant 15
我可以通过这种策略看到的一个问题是,有人可以为您提供为不同的Facebook应用获取的访问令牌.据我所知,没有办法验证访问令牌是否适用于您的应用程序,因此您将继续使用它.
但这听起来并不是很有害.通常,人/应用程序会尝试保护访问令牌,而不是共享它们.
一种可能的利用方式是,为某人创建自己的网站或移动应用程序,为其用户获取访问权限,并尝试使用您的API对其进行身份验证.如果此操作成功(用户在您的站点中拥有Facebook帐户),则恶意站点将能够使用您的API模拟用户.
这是一个很长的镜头,但我认为它可以工作.
编辑:看起来有一种方法可以验证访问令牌.请参阅@Daaniel关于问题的答案从用户访问令牌获取应用程序ID(或验证源应用程序是否有令牌).
归档时间: |
|
查看次数: |
45707 次 |
最近记录: |