facebook - 使用 Facebook oauth 登录,没有完整的 facebook.com 访问权限

标签 facebook ssl oauth proxy facebook-oauth

我目前正在开发的 Web 应用程序需要用户能够通过 Facebook OAauth 登录。然而问题是,所有这些用户都在阻止访问 facebook.com(公司政策)的防火墙后面。我们已经研究了几种解决方案来解决这个问题,例如;

  • 在 Facebook 和用户之间放置一个(squid)代理。这可以解决问题,因为 squid 支持细粒度的基于正则表达式的 ACL。但是,大多数 Facebook 的 OAuth 策略都在 www.facebook.com 上运行,如果用户使用 HTTPS(这是强制性的),则无法检查 PATH_INFO 以将特定路径列入白名单。
  • 在防火墙的 DMZ 中添加一个类似代理的站点,它只传递和更改 urls/Facebook 请求。这显然也不是可行的方法,因为这基本上意味着用户将他们的凭据留在我们的服务器上,这违反了 Facebook 的条款。
  • 稍微放宽防火墙以仅启用 OAuth 身份验证所需的 IP 地址,但据我们所知,没有专门的 IP 或子域仅用于身份验证(如果 graph.facebook.com 就好了会提供这样的东西)。

有替代解决方案的想法吗?这有可能吗?

最佳答案

不,因为 OAuth Login API 的流程通过将用户发送到 facebook.com 上的 HTTPS URL 来工作,您将无法轻松区分设置应用程序登录所需的流量和 Facebook.com 的其他流量

尝试使用像“赞”按钮这样的社交插件来验证 Facebook 用户时,您会遇到同样的问题 - 您无法轻松地将插件流量与 facebook.com 的其他流量分开

关于facebook - 使用 Facebook oauth 登录,没有完整的 facebook.com 访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8995467/

相关文章:

ios - 如何让 FBFriendPickerViewController 显示所有 friend

facebook - 在 Facebook Graph API 中获取用户应用程序范围的用户 ID

plsql - PL/SQL OpenID+OAuth 实现 - 400 - 错误请求

oauth - 保护 ASP.NET WebAPI - 自定义登录 + 社交登录

java - Spring Boot资源服务器使用HTTP POST而不是HTTP GET验证 token

ios - Facebook SDK 似乎缺少内容标题和描述?

ios - 各种FB登录方式有什么区别?

ssl - 如何使用 openssl 进行 TLS 1.3 PSK?

java - 如何在 java 中设置 SSL 协议(protocol)版本?我怎么知道是哪一个? javax.net.ssl.SSLException : Received fatal alert: protocol_version 异常

ssl - 如何从 URL 获取证书?