0

除此之外,当使用 facebook 的客户端流程时,您会立即获得访问令牌,而在使用服务器流程时,您首先会获得必须交换访问令牌的授权代码,这两个流程之间有什么区别我应该什么时候使用它们?

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

乍一看,我虽然可以获取我在客户端(通过客户端流)上获得的 access_token 和 id,将它们发送到我的服务器,然后如果对该 ID 和令牌的图形 api 调用没有中断,我可以假设我是与该用户打交道并根据他的 FB ID 将他登录到我的网站。

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

我这么说的原因是另一个(黑客)应用程序所有者与我的应用程序“共享”用户。可能会获取他(非法)在他的授权流程中为用户获取的 access_token 和 ID,并使用这些数据伪造对我的站点的调用,导致我像他是这个用户一样登录他。

我在这里错过了什么吗?

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

4

1 回答 1

0

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

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

于 2012-03-01T20:08:37.233 回答