Как я могу пройти повторную аутентификацию в Facebook после того, как OAuth 2.0 изменится на SDK? - PullRequest
1 голос
/ 28 сентября 2011

В нашем приложении были некоторые действия, которые мы требовали от пользователя для повторной аутентификации перед продолжением.Для этого мы использовали код, подобный приведенному ниже.

FB.login(
  function(response) { /* code here */ }, 
  {auth_type: 'reauthenticate', auth_nonce: '...'}
);

Похоже, опция auth_type больше не поддерживается, потому что я получаю следующее сообщение журнала: 'FB.login () вызывается, когда пользователь ужесвязано.'и пользователя не просят повторно подтвердить подлинность.

У кого-нибудь есть какие-либо идеи, как повторно подтвердить подлинность после изменений для OAuth 2.0?

Ответы [ 3 ]

3 голосов
/ 14 ноября 2011

Похоже, что в настоящее время (и я квалифицирую это, поскольку Facebook, кажется, меняет свой ответ API по прихоти), вы можете получить auth_type: reauthenticate для правильной работы, если вы также указываете разрешения (параметр scope в OAuth 2.0) ). Проверьте этот пример:

http://www.fbrell.com/saved/a78ba61535bbec6bc7a3136a7ae7dea1

В этом примере нажмите «Выполнить код» и попробуйте кнопки «FB.login ()» и «FB.login () с разрешениями». Оба кодируются так, чтобы использовать auth_type: reauthenticate, но только последний фактически выдает приглашение FB после входа в систему.

Вот соответствующие примеры:

// DOES NOT PROMPT
document.getElementById('fb-login').onclick = function() {
  FB.login(
    function(response) {
      Log.info('FB.login callback', response);
    },
    { auth_type: 'reauthenticate' }
  );
};

// PROMPTS AS EXPECTED
document.getElementById('fb-permissions').onclick = function() {
  FB.login(
    function(response) {
      Log.info('FB.login with permissions callback', response);
    },
    { scope: 'offline_access', auth_type: 'reauthenticate' }
  );
};

Итак, ответ: Да, auth_type: reauthenticate, ДЕЛАЕТ ли РАБОТА, но ТОЛЬКО если вы также указали допустимый параметр области. (И да, я пробовал это с пустой областью действия, и это действовало так же, как и использование области вообще.)

0 голосов
/ 18 сентября 2016

Используя FacebookRedirectLoginHelper :: getReAuthenticationUrl все работает отлично.Внутренне метод помещает 'auth_type' => 'reauthenticate' и передает также все необходимые разрешения.

Теперь проблема заключается в том, что пользователю предлагается только повторно ввести пароль без возможности "переключаться" междупользователи или без возможности вставить также имя пользователя.

Кто-то нашел решение для этой проблемы?Я управляю приложением с несколькими учетными записями, и когда пользователю необходимо снова сгенерировать токен, это проблема :( Спасибо, Алекс.

0 голосов
/ 29 сентября 2011

Вы можете использовать iframe, чтобы убедиться, что cookie всегда действителен.

Facebook автоматический повторный вход из cookie php

...