c++ - 在 C++ 中对 facebook 进行身份验证

标签 c++ facebook authentication oauth

我已经在互联网上搜索了好几天,但似乎找不到任何合适的例子。我对oauth2流程的理解是(如有错误请指正):

  1. 客户端程序向facebook请求一个request_token
  2. 客户端程序启动一个浏览器,给它一个包含client_id和request_token的地址,然后让给浏览器
  3. 用户登录/订阅并接受request_token
  4. 一旦焦点返回到客户端程序,该程序就会发送它之前获得的 request_token 以检查它是否已被授权;如果是,则返回访问 token
  5. 只要access_token有效,客户端程序就可以自由访问任何需要访问的内容

oauth2 stub 和 this page 似乎证实了这一点,但我找不到任何方法在 facebook 中获取 request_token。连here我找不到任何有用的东西。也可以获取 access_token 或包含 access_token 的 signed_request。

我的程序应该运行的平台包括 MacOSX、iOS、Win32、Linux。我们目前可以进行 http/https 通信,并且可以接受特定于平台的代码,例如 Win32 上的 ShellExecute()。

最佳答案

你为什么不查看 official docs而不是查看实现 OAuth 1.0 的提供商的文档?

由于 Facebook 没有实现直接满足您要求的流程,您可以使用的下一个最佳流程是 Client Side Authentication flow .

它基本上是这样工作的:

  1. 从您的应用程序打开一些网络浏览器/ View ,并将其定向到 Facebook 的 /dialog/oauth 端点,并将参数作为查询字符串。
  2. 让用户登录并在其中授予您的应用程序访问权限。
  3. 从浏览器 View 中的响应重定向中捕获 access_token 片段。

如何从您的应用程序打开 Web 浏览器/ View 以及如何捕获重定向在很大程度上取决于您使用的操作系统/库,但通过一些研究应该是可行的。

关于c++ - 在 C++ 中对 facebook 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280964/

相关文章:

c++ - 找出两组是否重叠的最快方法?

c++ - 无法使用变量设置可变长度

android - Android 上的 Facebook 登录

java - JSF 中的用户表单例份验证

c# - OpenId 身份验证跳过 "Please wait..."屏幕

c++ - 在 D3D10 中的着色器常量缓冲区中设置纹理

ios - UIWebView 中的 Facebook 身份验证不会重定向回我网站上要求身份验证的原始页面

Android Facebook 墙贴 - publish_action 权限未授权

asp.net - 如何从 Asp.Net Core 身份验证获取策略列表?

c++ - glMapBufferRange 持久缓冲区和交错数据