Facebook同一窗口身份验证

时间:2015-06-25 07:57:06

标签: javascript facebook-graph-api authentication facebook-login

我正在尝试在我的网络应用程序的登录页面的同一窗口中进行Facebook身份验证。 当用户点击登录按钮进入认证页面时,我正在使用以下代码。

function loginUsingOAUTH()
{   
    top.location = 'https://graph.facebook.com/oauth/authorize?client_id=839846246064537&scope=email&redirect_uri=http://www.olcayertas.com/testqa/result.html';
}

1)验证后,Facebook会将我重定向到我的重定向网址并返回参数"代码"。 此时我想访问Facebook用户信息,但我不知道该怎么做。 这是什么"代码"参数为?

2)有没有其他方法可以访问用户信息?

3)您是否有任何其他建议facebook认证与同一窗口登录?

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

当您获得代码时,您应该发出服务器端请求以获取访问令牌,而不是将访问令牌传递给用户。它在Facebook Developer页面中解释:

  

交换访问令牌的代码

     

要获取访问令牌,请对以下内容发出HTTP GET请求   OAuth端点:

GET https://graph.facebook.com/v2.3/oauth/access_token?
    client_id={app-id}
   &redirect_uri={redirect-uri}
   &client_secret={app-secret}
   &code={code-parameter}
     

此端点具有一些必需参数:

client_id. Your app's IDs
redirect_uri. This argument is required and must be the same as the original request_uri that you used when starting the OAuth login
     

过程。       client_secret。您在应用仪表板上显示的独特应用秘密。此应用程序机密永远不应包含在客户端代码或中   可以反编译的二进制文件。它非常重要   仍然完全保密,因为它是你安全的核心   应用程序和所有使用它的人。       码。从上面的登录对话重定向接收的参数。

     

<强>响应

     

您将从此终端收到的回复将被退回   JSON格式,如果成功,则

{“access_token”: <access-token>, “token_type”:<type>, “expires_in”:<seconds-til-expiration>}
     

如果不成功,您将收到解释性错误   消息。