0

除了使用Facebook的客户端流程时,您立即获得访问令牌,并且在使用服务器流程时,您首先会获得授权代码交换访问令牌,这两个流程之间有什么区别,我应该在什么时候使用它们?使用Facebook客户端流程进行身份验证并在应用程序/站点上登录

更具体地说,我可以使用客户端流程,仍然能够安全地将用户登录到我的应用程序/站点中吗?

乍一看我虽然可以把客户端上的access_token和id(通过客户端流)发送到我的服务器,然后如果一个图形API调用该ID和令牌不会中断我可以假设我正在处理这个用户,并根据他的FB ID将他登录到我的站点。

第二个想法是,如果我不遵循服务器流程,则无法安全地使用客户端ID & access_token将用户登录到我的应用程序/站点。

我之所以这么说是因为另一个(黑客)应用程序所有者与我的应用程序“共享”一个用户。可能需要在他的授权流程中(非法地)为用户获取access_token和和ID,并且使用该数据伪造对我的站点的呼叫,使我登录他,就好像他是该用户一样。

我在这里错过了什么吗?

这不应该写在https://developers.facebook.com/docs/authentication/第一段的大红色字母上吗?

回答

0

Oauth 2(http://oauth.net/2/)是Facebook使用的。大多数情况下,它是最安全的接口。如果有一种方式让用户为一个应用程序获取访问令牌,然后在另一个应用程序中使用它,则需要修补oauth2(或者需要修补Facebook oauth2)。

如果您认为您找到了破解方法,那么您应该从http://www.facebook.com/whitehat/bounty获得500.00美元的奖品

相关问题