【问题标题】:How to verify two user who are friends on facebook如何验证两个在facebook上是朋友的用户
【发布时间】:2015-10-07 18:02:54
【问题描述】:

我正在开发一个基于 facebook 的移动应用程序。该应用程序通过 facebook 登录创建本地用户。申请步骤如下。

  1. 用脸书登录
  2. 后端服务创建本地用户
  3. 通过 Facebook SDK 查找使用该应用的朋友
  4. 投票给你的朋友

注意事项:

  1. 我不想在我的数据库系统上保留用户朋友
  2. 我使用智威汤逊

问题:

我必须验证经过身份验证的用户和投票用户是 Facebook 上的朋友。用户必须由其朋友投票。

我找到了几个解决方案,但它们也存在漏洞。

例如;

我通过 facebook sdk 进行了身份验证并获取了我所有的朋友。请求是像这样投票给用户: /vote/user_id/vote_id 后端服务对jwt token 和id 为user_id 的投票用户进行检查验证,作为认证用户的vote_id。

table structure

from_user_id,vote_id,to_user_id 

所以问题是,当用户进行身份验证时,它可以投票来自应用程序之外的用户,获取 jwt 令牌,无论它是否是它的朋友。这对我们来说是一个非常大的问题。所以我想知道如何验证两个用户是朋友而不向 Facebook 发送请求。或者如何设计架构来避免这种情况。

【问题讨论】:

    标签: java facebook facebook-sdk-4.0


    【解决方案1】:

    这可以简单地通过发出请求来完成

    /me/friends/{id_of_friend}
    

    使用当前应用用户的访问令牌。如果他们是朋友,您将返回一个包含朋友 id 和姓名的 data 结构 - 如果他们不是朋友,data 将是一个空数组。

    这当然要求两个用户都已向您的应用授予user_friends 权限。

    【讨论】:

    • 感谢您的回答,但我的意思是有一种方法可以验证两个用户是否是好友,而无需访问 facebook 服务。
    • 什么意思,不发出 API 请求?好吧,正如您所说,您不想将信息存储在您自己的终端上——所以如果没有 API 请求,您还能指望它来自哪里……?
    • 是的,不发出 api 请求。如果我知道答案,我没有问它。问题不仅仅是验证两个用户关系,还与客户端服务器架构有关。我试图找到一个解决方案,但我没有。所以我不知道它来自哪里。
    • 如果您希望能够请求它,那么必须有人存储该信息,不是吗?如果那不是你,那就只剩下 Facebook。如果这两种选择都不能让你满意,那么你的问题是关于 magic ...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多