【问题标题】:What is the purpose of Facebook "Valid OAuth Redirect URIs"?Facebook“有效 OAuth 重定向 URI”的目的是什么?
【发布时间】:2021-02-13 22:44:50
【问题描述】:

Facebook“有效 OAuth 重定向 URI”的用途是什么以及如何使用它?

我应该在这个网址上有什么?

当用户在我的网站上使用 Facebook 登录进行登录时,Facebook 是否会向 URL 发送任何数据?

这是一个关于重定向的问题,但我认为这不是 OAuth 重定向:purpose of redirect URI in facebook

【问题讨论】:

    标签: facebook facebook-login


    【解决方案1】:

    “有效的 OAuth 重定向 URI”可以在我的应用 > {您的应用} > Facebook 登录 > 设置中进行配置。

    Valid OAuth Redirect URIs”,我将只调用redirect_uri,当您Manually Build a Login Flow时使用。

    在这种情况下,redirect_uri 是您的网络用户在登录后被重定向到的 URL。

    Facebook 在重定向到redirect_uri 时将codestate 作为URL 参数发送。

    在您的 http 服务器上的 redirect_uri 上,您应该有一个编程代码来验证 state 并使用 code 获取 access_token

    如何进行服务器端 API 调用的示例:

    1。您的登录页面

    在您的网页(例如https://yourdomain.com/fb-login.html)上,您有以下登录链接:

     <a href="https://www.facebook.com/v9.0/dialog/oauth?client_id=111&redirect_uri=https%3A//yourdomain.com/fb-auth.html&state=mystate123">Login</a>
    

    111是你的 Facebook 应用 ID。

    https%3A//yourdomain.com/fb-auth.html 是您的 redirect_uri,并且必须与您在“有效 OAuth 重定向 URI”中配置的内容相匹配。

    mystate123 是您的自定义状态或会话 ID 类型,您可以使用它来验证回调是否从您的登录页面启动。 Facebook:“您的应用创建的一个字符串值,用于维护请求和回调之间的状态。”。

    2。 Facebook 登录窗口

    当用户点击“登录”时,Facebook 登录窗口出现并且她/他输入她/他的用户名和密码。之后,成功登录后,用户将被重定向到 https://yourdomain.com/fb-auth.html?code=JQJc5CF&amp;state=mystate123

    3。从回调中提取参数

    当上述 URL 的 GET 请求到达您的 http 服务器时,您必须提取 code 并且应该从 URL 中提取 state

    4。验证状态(可选)

    您可以验证 state 是否与您在 fb-login.html 的登录按钮上提供的 state 匹配

    5。获取access_token

    在您的服务器上,您必须发出另一个 GET 请求才能获得 access_token。这是服务器到服务器 调用,因此您可以包含您的client_secret警告:切勿在客户端代码中包含您的client_secret

     https://graph.facebook.com/v9.0/oauth/access_token?client_id=111&redirect_uri=https%3A//yourdomain.com/fb-auth.html&client_secret=222&code=JQJc5CF
    

    回复是:

    {
      "access_token": "IEESb4Z",
      "token_type": "bearer"
    }
    

    6。进行 API 调用

    现在您可以使用访问令牌进行 API 调用:

    https://graph.facebook.com/v9.0/me?fields=id,name,email&access_token=IEESb4Z
    

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 1970-01-01
      • 2019-03-03
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2018-12-08
      相关资源
      最近更新 更多