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