1
Я хочу перенаправить пользователей на страницу oauth, если они удалили какие-либо разрешения, требуемые моим приложением.Facebook oauth javascript redirect, приводящий к бесконечному циклу
По какой-то причине приведенный ниже код приводит к бесконечному циклу при попытке перенаправления из функции обратного вызова FB.api. Любые идеи, как я могу это исправить?
var perms = ['publish_actions', 'email', 'user_birthday', 'user_location'],
permsString = perms.join(','),
permissionsUrl = 'https://www.facebook.com/dialog/oauth';
permissionsUrl += '?client_id=' + config.facebook.appId;
permissionsUrl += '&redirect_uri=' + encodeURI(canvasUrl);
permissionsUrl += '&scope=' + permsString;
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
FB.api('/me/permissions', function(response) {
// using underscore here...
var keys = _.keys(response.data[0]),
diff = _.difference(perms, keys);
// send the user through the auth again if they've removed any of the perms we need
if (diff.length) {
window.location.href = permissionsUrl; // results in an endless redirect loop
// window.location.href = 'http://randomwebsite.com'; // does redirect successfully!!!!
}
});
}
}, true);
методом проб и ошибок я обнаружил, что упаковка перенаправлять в именованной функции вне обратного вызова а затем ссылаться на это в обратном вызове, казалось, сделал трюк – techjacker
@techijacker У меня похожие проблемы .. можете ли вы привести несколько примеров того, как вы преодолеваете эту ситуацию? –