标题说明了大部分问题,但我很难思考如何让 Facebook 认证用户获得对我自己网站 API 的访问权限。
在用户通过 FB 进行身份验证后,我有一些关于用户的可用信息,但没有 API key 或用户名/密码可传递到我自己的安全 API 服务器进行身份验证。
我发现了几个相关的问题,但似乎没有一个是理想的答案:
- > Facebook Connect to authenticate on a personal API
- > Authorizing facebook connect users with other third parties
任何帮助将不胜感激!
最佳答案
由于您是通过 Facebook connect 对用户进行身份验证,因此您对用户有足够的了解。
无论 authentication flow你正在使用,你将
第 1 步:接收一个 access_token
和一个 expire
参数。很可能,您也请求了 user_id
(如果您使用的是 JS-SDK,它会处理其中的大部分)。
第 #2 步: 将这些信息(access_token
、expire
和 user_id
)封装在哈希字符串中,例如模仿 Facebook signed_request
格式。
第 3 步:在您自己的 API 调用中发送此散列字符串:
https://mydomain.com/apis/getUserSecretData?fb_oauth=my_hashed_string&vars=my_other_vars
第 4 步:在您的 API 端点,解密/解码您的散列字符串并验证 expire
参数以及 access_token
已过期,那么您需要请求一个新的并重复您的 API 调用。
关于api - 使用 Facebook Connect 登录/创建帐户时,如何使用我自己网站的 API 进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949825/