首页 文章

Facebook登录 - 检测没有PHP-SDK登录的用户

提问于
浏览
0

我根据https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/为facebook登录 Build 了自定义登录流程...

如果access_token检索(访问令牌的交换代码)成功(没有GET错误),是否可以将用户视为facebook-valid-user-logged-in?

facebook access_token是用户独有的东西以及只能“由用户生成”的东西吗?

或者我应该尝试使用该access_token检索用户信息,并在成功检查后(它有权限请求的信息,例如电子邮件),然后才认为他是facebook-valid-user-logged-in?

PS:我不想使用Facebook PHP-SDK

1 回答

  • 1

    如果您要求不使用官方SDK,那么我会说您应该通过查询 /me 来验证您检索的令牌 .

    这是确保您处理有效令牌的最佳方式,因为当您将其用于请求时,Facebook会对其进行验证 .

    如果您使用的令牌无效,您将收到与此类似的回复:

    {
      error: {
        message: "Invalid OAuth access token.",
        type: "OAuthException",
        code: 190
      }
    }
    

    每个应用程序的用户访问令牌对于每个用户 and 是唯一的 . 每个应用程序将为同一用户返回不同的令牌 .

    应用程序访问令牌对于每个应用程序都是唯一的,并且不需要向Facebook请求任何请求 - 它们只是app_id和app_secret之间的串联: app_id|app_secret as mentioned in the documentation:

    还有另一种方法可以调用Graph API,不需要使用生成的应用程序令牌 . 您可以在拨打电话时将app id和app secret作为access_token参数传递:http://graph.facebook.com/endpoint?key = value&access_token = app_id | app_secret使用生成的访问令牌的选择与此相比方法取决于您隐藏应用程序密钥的位置 .

相关问题