iOS 中的 Facebook AccountKit requestAccount 安全错误
Facebook AccountKit requestAccount security error in iOS
使用 Facebook AccountKit 完成登录后,我想检索用于验证的 phone 号码或电子邮件。根据文档,这是 SDK 中的一个简单方法调用:
[accountKit requestAccount:^(id<AKFAccount> account, NSError *error) {...}];
但是,我不断收到此错误:
[AccountKit][Error]: API calls from the server require an appsecret_proof argument
好的,首先,我使用他们的 Client SDK 进行调用,而不是从服务器进行调用,因此错误文本没有意义。用户刚刚登录,所以我有一个有效的访问令牌。
即使假设来自客户端的调用需要appsecret_proof
作为参数,调用requestAccount
时也没有参数字段。
出于安全考虑,我希望来自服务器的所有调用都提供 App Secret,因此我不想为我的应用关闭该设置。那么,当 Require App Secret for server API calls
打开时,如何从客户端调用 requestAccount
?
我认为让您的服务器对 FB 的调用保密是没有意义的,但让您的客户端请求不受保护。请记住,您的客户端比您的服务器更容易受到黑客攻击。
由于您已经使用密钥对 AK 进行服务器到服务器调用,我建议您从服务器端添加一个新调用,以获取帐户信息并将其传回给您的客户端。
为了额外的安全,完全关闭客户端令牌流并只使用代码流
使用 Facebook AccountKit 完成登录后,我想检索用于验证的 phone 号码或电子邮件。根据文档,这是 SDK 中的一个简单方法调用:
[accountKit requestAccount:^(id<AKFAccount> account, NSError *error) {...}];
但是,我不断收到此错误:
[AccountKit][Error]: API calls from the server require an appsecret_proof argument
好的,首先,我使用他们的 Client SDK 进行调用,而不是从服务器进行调用,因此错误文本没有意义。用户刚刚登录,所以我有一个有效的访问令牌。
即使假设来自客户端的调用需要appsecret_proof
作为参数,调用requestAccount
时也没有参数字段。
出于安全考虑,我希望来自服务器的所有调用都提供 App Secret,因此我不想为我的应用关闭该设置。那么,当 Require App Secret for server API calls
打开时,如何从客户端调用 requestAccount
?
我认为让您的服务器对 FB 的调用保密是没有意义的,但让您的客户端请求不受保护。请记住,您的客户端比您的服务器更容易受到黑客攻击。
由于您已经使用密钥对 AK 进行服务器到服务器调用,我建议您从服务器端添加一个新调用,以获取帐户信息并将其传回给您的客户端。
为了额外的安全,完全关闭客户端令牌流并只使用代码流