Facebook "Valid OAuth Redirect URIs" 的目的是什么?
What is the purpose of Facebook "Valid OAuth Redirect URIs"?
Facebook“有效的 OAuth 重定向 URI”的用途是什么以及如何使用它?
这个URL我应该有什么?
当用户在我的网站上使用 Facebook 登录登录时,Facebook 是否会向 URL 发送任何数据?
这是一个关于重定向的问题,但我认为它不是 OAuth 重定向:purpose of redirect URI in facebook。
“有效的 OAuth 重定向 URI”可以在“我的应用程序”>“{您的应用程序}”>“Facebook 登录”>“设置”中配置。
"有效的 OAuth 重定向 URI",我只称其为 redirect_uri
,当您 Manually Build a Login Flow.
在这种情况下,redirect_uri
是一个 URL,您的网络用户在登录后将被重定向到该站点。
当重定向到 redirect_uri
.
时,Facebook 发送 code
和 state
作为 URL 参数
在您的 http 服务器上的 redirect_uri
上,您应该有一个编程代码来验证 state
并使用 code
获得 access_token
.
如何进行服务器端 API 调用的示例:
1。您的登录页面
在您的网页上(例如 https://yourdomain.com/fb-login.html
),您有以下登录名 link:
<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 App ID。
https%3A//yourdomain.com/fb-auth.html
是您的 redirect_uri
并且必须与您在“有效的 OAuth 重定向 URI”中配置的相匹配。
mystate123
是您的自定义状态或会话 ID 类型,您可以使用它来验证回调是否从您的登录页面启动。 Facebook:“您的应用创建的字符串值,用于维护请求和回调之间的状态。”。
2。 Facebook 登录 window
当用户单击“登录”时,Facebook 登录 window 出现,she/he 输入 her/his 用户名和密码。之后,成功登录后,用户将被重定向到
https://yourdomain.com/fb-auth.html?code=JQJc5CF&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
Facebook“有效的 OAuth 重定向 URI”的用途是什么以及如何使用它?
这个URL我应该有什么?
当用户在我的网站上使用 Facebook 登录登录时,Facebook 是否会向 URL 发送任何数据?
这是一个关于重定向的问题,但我认为它不是 OAuth 重定向:purpose of redirect URI in facebook。
“有效的 OAuth 重定向 URI”可以在“我的应用程序”>“{您的应用程序}”>“Facebook 登录”>“设置”中配置。
"有效的 OAuth 重定向 URI",我只称其为 redirect_uri
,当您 Manually Build a Login Flow.
在这种情况下,redirect_uri
是一个 URL,您的网络用户在登录后将被重定向到该站点。
当重定向到 redirect_uri
.
code
和 state
作为 URL 参数
在您的 http 服务器上的 redirect_uri
上,您应该有一个编程代码来验证 state
并使用 code
获得 access_token
.
如何进行服务器端 API 调用的示例:
1。您的登录页面
在您的网页上(例如 https://yourdomain.com/fb-login.html
),您有以下登录名 link:
<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 App ID。
https%3A//yourdomain.com/fb-auth.html
是您的 redirect_uri
并且必须与您在“有效的 OAuth 重定向 URI”中配置的相匹配。
mystate123
是您的自定义状态或会话 ID 类型,您可以使用它来验证回调是否从您的登录页面启动。 Facebook:“您的应用创建的字符串值,用于维护请求和回调之间的状态。”。
2。 Facebook 登录 window
当用户单击“登录”时,Facebook 登录 window 出现,she/he 输入 her/his 用户名和密码。之后,成功登录后,用户将被重定向到
https://yourdomain.com/fb-auth.html?code=JQJc5CF&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