使用Facebook iOS SDK的OAuth2授权码
问题描述:
我正在开发使用Facebook登录的iOS应用程序。我有Facebook iOS SDK设置和工作,但我的客户的后端开发人员担心Facebook的访问令牌的安全性。使用Facebook iOS SDK的OAuth2授权码
使用Facebook SDK,我们希望从Facebook获得授权码,而不是访问令牌,并通过App Key和App Secret获取服务器上的访问令牌。有没有办法做到这一点?
注:我用这个方法登陆(在FBSession):
openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:
答
回答我的问题:
这不能与当前的Facebook的iOS SDK来完成,但你可以使图形API调用到
https://graph.facebook.com/oauth/client_code?access_token=...&client_id=...&client_secret=...&redirect_uri= ...
与代码交换访问令牌。
但是这根本不安全,因为您必须使用应用程序密钥运送应用程序。
确实是那个伴侣。即使在Android上,Facebook登录SDK也不会让您检索授权码,只能访问令牌。因此,如果您在应用程序中禁用Facebook登录产品的客户端oauth登录,则无法使用SDK从设备上的Facebook应用程序登录。 –
但是,facebook上的账户套件SDK(通过电子邮件/电话号码登录)并不会因此受到影响。它允许您指定是否要检索令牌或代码,并相应地仅返回该令牌或代码。 –
Facebook强制应用程序将令牌发送到服务器?为什么它不允许获得后端的授权码,所以稍后后端可以自己获得一个令牌?这是一种更安全的方式。我想知道他们为什么迫使我们将访问令牌发送到后端。 – Herno