我可以仅使用 Facebook 签名请求安全地验证 Facebook 用户吗?

2024-03-05

我想让我的用户能够将他们的用户帐户与 Facebook 或 Twitter 相关联,并允许他们使用 Facebook/Twitter 帐户登录我的服务器,而不是使用经典的用户名/密码。和登录的思路基本一样堆栈溢出 https://stackoverflow.com/users/login-add.

我目前对 Facebook 的态度: 客户端应用程序将执行 OAuth,然后使用他们的 Facebook ID 登录我的服务器。根据此 Facebook ID,服务器将查找关联的用户帐户并执行登录,而无需询问用户名/密码。然而,仅仅依靠 Facebook ID 登录并不是很安全,因为这与仅使用用户名而不是用户名和密码登录是一样的。

因此,为了确保 Facebook id 的真实性,客户端应用程序还将提供 FBSR(Facebook 签名请求,请参阅:https://developers.facebook.com/docs/facebook-login/using-login-with-games/#checklogin https://developers.facebook.com/docs/facebook-login/using-login-with-games/#checklogin)与登录请求。
服务器将使用此 FBSR 检查两件事:

  1. 请求中的 Facebook id 必须与 FBSR 中隐藏的 Facebook id 相同

  2. 服务器将通过 Facebook 密钥重新计算签名部分。这必须与 FBSR 中的签名匹配。

通常,服务器应使用 oauth_token 与 Facebook 服务器进行检查,以 100% 确定用户身份。不过我需要跳过这个以避免依赖我们服务器上的 Facebook 服务器。

我有两个问题:

1)上述方法足够好吗?是否可以改进(无需服务器到服务器通信)?

2) 我想对 Twitter 帐户执行相同的操作,但他们签名的请求与 Facebook 不同。看来 Twitter 用户 ID 嵌入在 oauth_token 中,所以我的方法可能需要稍加调整,但我不确定用户 ID 是否始终是 oauth_token 的一部分,并且在搜索互联网后无法得到确认。


我认为您的方法足够好,并且没有看到任何方法可以避免使用签名请求进行服务器到服务器的通信。请记住,在 Facebook Graph Api 版本 2 中,为了保护用户的隐私,Facebook 不会发送真实的用户 ID,而是发送为应用程序生成的用户 ID。还可以启用匿名登录。

我不确定你想用 Twitter 做什么,以及为什么要比较这些 API(它们非常不同)。这推特登录 https://dev.twitter.com/docs/auth/sign-twitter,也称为使用 Twitter 登录,用于任何网站或移动应用程序,也应该适合您。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以仅使用 Facebook 签名请求安全地验证 Facebook 用户吗? 的相关文章

  • Twitter 的 max_id 参数的默认值?

    Twitter 的新 max id 参数有默认值吗 我试过了 我只是希望它准确地返回如果您根本不使用 max id 时会返回的内容 比布斯指望着你 我认为没有默认值 如果您希望结果就像未使用 max id 一样 则不要发送 max id 它
  • Firebase GAS webapp Google 弹出窗口消失

    我正在尝试升级我的 firebase GAS web 应用程序 之前我有一个弹出窗口 可以让用户使用 Google 登录 我不确定我做错了什么 但我已经升级到新的 firebase 现在正在尝试使用新的代码格式进行相同的登录 发生的情况是
  • 澳大利亚的 Facebook Open Graph 区域设置

    我正在尝试为澳大利亚网站添加 og locale 标签 但 Facebook 的 linter 告诉我有一个错误 根据文档 并假设正确的内容应该是什么 我已将其添加到我的页面标题中 Facebook 的 linter http develo
  • 适用于 Android 的 iOS Facebook 幻灯片菜单 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找创建这篇文章中描述的功能i
  • 如何使用 Facebook SDK API 为页面/网址“点赞”?

    我正在使用这段代码 facebook gt api me likes post array url gt http www google com 我收到以下错误 Fatal error Uncaught OAuthException 200
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 使用 facebook api 获取好友列表

    我有以下命令 它允许我在登录用户的 Facebook 墙上发布消息 facebook gt api uid feed POST array message gt Hello I m using the FB Graph API 即使用网址h
  • 在 React Native 中调试应用程序崩溃

    我是 React Native 新手 我正在尝试安装 React Native Facebook SDK 以便我可以使用我的应用程序进行 Facebook 登录 我按照此处列出的步骤操作 https tylermcginnis com in
  • 使用 Apache HTTPd 模块的 OAuth 2.0 身份验证

    是否可以使用 Apache HTTPd 服务器模块来实现 OAuth 2 0 或 1 0 我选择这条路线是因为每个请求都会首先到达 HTTPd 模块 因此我必须从那里进行身份验证 如果可能的话 请分享相关链接 我要补充一下尤金尼奥的答案mo
  • Ajax 调用诸如 'for (;;); 之类的响应是什么? { json 数据 }' 是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么人们会写这样的代码 throw 1 和 for 在 json 响应前面 https stackoverflow com questions 3146798 why do people put c
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 如何知道我的页面是否在 Facebook iframe 中运行

    我目前正在开发一个独立运行的网站 并作为 iframe 上的 Facebook 应用程序运行 我想知道在页面加载之前检查我的页面是否在 facebook iframe 中运行的 最佳实践 是什么 以便我可以预设相关的 CSS 和其他变量 T
  • ExtJS:使用“记住我”功能登录

    我正在尝试创建一个具有非常常见的 记住我 功能的简单登录窗口 登录验证是通过 AJAX 风格完成的 因此浏览器不会记住我的输入 我的方法是使用内置的state功能 但是如何使用它让我很困惑 Ext state Manager setProv
  • 我需要一个实时网站来测试 Facebook Connect 吗?

    我正在尝试将 facebook connect 与 nmy 社交网站集成 目前用户在我的网站上使用自己的帐户创建和登录 但我希望允许用户基本上在我的网站上创建一个新帐户 但使用 facebook connect 登录 我我认为在我的网站上这
  • ApiGee OAUTH 授权

    我是 Apigee 的新手 我需要在代理中进行标注以从谷歌融合表中获取数据 FT 服务要求使用誓言 2 0 进行安全呼叫 我已经使用自定义代理创建了此工作流程 没有任何 OAUTH 策略 并在键值映射中存储令牌 刷新令牌和过期时间 我还制作
  • 使用自定义 AuthenticationScheme 的 Blazor 服务器 cookie 身份验证

    我正在尝试在我的 Blazor 服务器应用程序中构建自定义 cookie 身份验证 只要我像这样使用 DefaultAuthenticateScheme 它就可以工作 builder Services AddAuthentication o
  • 用户验证 Facebook 后未调用应用程序打开 Url 方法

    我已将 ios 应用程序中的 facebook 升级到 3 0 并使用提供的代码https developers facebook com docs howtos login with facebook using ios sdk http
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • 我们可以通过 Facebook 的 API 访问企业页面上的“热门时段”吗?

    我正在为酒吧和餐馆构建一个网络应用程序 我发现 Facebook 在商业页面上有一个很棒的功能 称为 热门时段 可以告诉您某个地方的繁忙程度和时间 Facebook 的文档似乎没有提及任何相关内容 有谁知道这些信息是否可以通过 API 访问

随机推荐