4

我正在使用 Facebook 身份验证来证明我的客户端软件(iOS 原生)代表某个 FB 用户行事。但是,我的客户如何向我的服务器证明这一点,它有自己的登录方案。我想它需要将 FB access_token 传递给我的服务器,以便我的服务器可以查询 Facebook 以获取用户身份?

或者,有没有办法让 Facebook 存储我自己的访问凭据(我现有注册系统的用户名 + 密码)?那么,在 Facebook 登录后,我的客户会从 Facebook 获取它的用户名和密码并使用它来登录我的系统吗?

4

2 回答 2

0

好的,这是我对同一问题的务实解决方案。

使用 facebook 验证您的 iOSApp。这为您提供了一个access_token,然后您可以从 facebook获取用户的 facebook id ( fb_id )

您现在想要使用此身份验证来验证对与 iOSApp (yourService) 相关的某些服务的请求。

fb_idaccess_token与您的请求一起安全地发送到 yourService(例如使用 https)。

yourService 然后使用fb_idaccess_token进行任意社交图调用,例如:

https://graph.facebook.com/fb_id ?field=name& access_token = access_token

如果access_token无效或与fb_id不匹配,此调用将返回适当的错误,因此 yourService 现在可以根据返回值完成或拒绝请求。

yourService 和 iOSApp 可以根据 access_token 的权限和状态读取或修改 FB 图,但如果您只是想在用户已经通过您的 iOSApp 进行身份验证时使用 yourService 对用户进行身份验证,那么以上就是您所需要的。

关于 access_token 转移的 FB 政策可能存在一些问题,但只要您使用 https 进行转移,它就与 iOSApp 和 Facebook 之间的交换一样安全。

于 2012-09-12T22:52:34.593 回答
0

我最终做的是让我的服务器通过 Facebook 应用程序请求向客户端发送一个随机登录密码。即,iOS 客户端将 fb_id 发送到我的服务器,我的服务器生成随机密码并将其发布为 Facebook app_request。客户端从 Facebook 获取 app_request 并使用密码向我的服务器进行身份验证。

于 2012-09-14T00:31:06.043 回答