2014-03-03 133 views
2

我正在开发使用Facebook登录的iOS应用程序。我有Facebook iOS SDK设置和工作,但我的客户的后端开发人员担心Facebook的访问令牌的安全性。使用Facebook iOS SDK的OAuth2授权码

使用Facebook SDK,我们希望从Facebook获得授权码,而不是访问令牌,并通过App Key和App Secret获取服务器上的访问令牌。有没有办法做到这一点?

注:我用这个方法登陆(在FBSession):

openActiveSessionWithReadPermissions:allowLoginUI:completionHandler: 

回答

2

回答我的问题:

这不能与当前的Facebook的iOS SDK来完成,但你可以使图形API调用到

https://graph.facebook.com/oauth/client_code?access_token=...&client_id=...&client_secret=...&redirect_uri= ... 

与代码交换访问令牌。

但是这根本不安全,因为您必须使用应用程序密钥运送应用程序。

+0

确实是那个伴侣。即使在Android上,Facebook登录SDK也不会让您检索授权码,只能访问令牌。因此,如果您在应用程序中禁用Facebook登录产品的客户端oauth登录,则无法使用SDK从设备上的Facebook应用程序登录。 –

+1

但是,facebook上的账户套件SDK(通过电子邮件/电话号码登录)并不会因此受到影响。它允许您指定是否要检索令牌或代码,并相应地仅返回该令牌或代码。 –

+0

Facebook强制应用程序将令牌发送到服务器?为什么它不允许获得后端的授权码,所以稍后后端可以自己获得一个令牌?这是一种更安全的方式。我想知道他们为什么迫使我们将访问令牌发送到后端。 – Herno