如何从用户检测Facebook oauth窗口关闭动作

时间:2012-06-26 00:12:18

标签: facebook oauth

我想知道当用户在oauth流程中关闭或点击Facebook权限窗口上的取消按钮时,是否有任何方式通知父页面。它是用户授权应用程序的窗口。带有网址的窗口:https://www.facebook.com/dialog/oauth?api_key= .....以及“使用Facebook登录”和“取消”按钮。我想要完成的是 - 如果用户取消或关闭oauth权限窗口,我想打开Facebook简单共享窗口,他们可以在不授权应用程序的情况下发布状态。

我正在使用JS SDK进行Facebook连接。

2 个答案:

答案 0 :(得分:2)

当用户取消oauth网址更改的授权时,观察网址,现在它将包含描述用户操作的字段数

YOUR_REDIRECT_URI?
    error_reason=user_denied
   &error=access_denied
   &error_description=The+user+denied+your+request.
   &state=YOUR_STATE_VALUE

这将是用户取消身份验证后的值

error_reason=user_denied
&error=access_denied
&error_description=The user denied your request

用户取消后,身份验证对话框页面将被重定向到父页面,您可以在其中检查这些错误参数。

答案 1 :(得分:2)

此代码取自documentation for the FB.login method

FB.login(function(response) {
   if (response.authResponse) {
     console.log('Welcome!  Fetching your information.... ');
     FB.api('/me', function(response) {
       console.log('Good to see you, ' + response.name + '.');
     });
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 });

正如您所看到的,if (response.authResponse)部分检查登录过程是否成功完成,即用户是否允许该应用程序,并且他已登录到Facebook。

如果用户点击“取消”或关闭弹出窗口,则响应中不会有authResponse参数。