API входа в Facebook по-прежнему выдает ошибку https, необходимую, даже если приложение находится в режиме разработки - PullRequest
0 голосов
/ 17 мая 2019

Я создал тестовое приложение на Facebook и установил для домена и URL сайта значение localhost и http://localhost:4200 соответственно.

Приложение находится в режиме разработки, поскольку в документации сказано: «Вы по-прежнему сможете использовать HTTP с адресами« localhost », но только тогда, когда ваше приложение все еще находится в режиме разработки», тем не менее я получаю сообщение об ошибке »Метод FB.login скоро перестанет работать при вызове со страниц http. Обновите ваш сайт, чтобы использовать https для входа в Facebook. "когда я вызываю API FB.login ().

Иногда окно facebook для регистрации пользователя не отображается, в других случаях открывается окно с ошибкой «Ошибка входа: при входе в приложение возникает ошибка. Повторите попытку позже».в пределах.

Обновление

У меня закончился https в локали, и относительная ошибка исчезла.Эта функция вызывается кнопкой «Войти через Facebook»

loginWithFacebook() {
    this.btnLoaderFB = true;
    this.auth.facebookInitializer()
      .then(() => {
        this.auth.facebookInitialized = true;
        return this.auth.facebookLoginStatus();
      })
      .then((loginStatusResponse) => {
        console.log(loginStatusResponse);
        if (loginStatusResponse.status !== 'connected') {
          return this.auth.facebookLogin();
        } else {
          return this.auth.getFacebookProfileInfo();
        }
      })
      .then((profileInfo) => {
        console.log(profileInfo);
        this.auth.loginWithFacebookRemote(profileInfo)
          .subscribe(
            res => {
              this.btnLoaderFB = false;
            }
          );
      })
      .catch(err => {
        console.log(err);
        this.translate.get('t.validation.error_fb_login').pipe(takeUntil(this.unsubscribe)).subscribe(
          t => {
            this.error = t;
            this.btnLoaderFB = false;
          });
      });

При первом вызове этой функции я получаю ответ от facebookLoginStatus(), зарегистрированного на консоли

enter image description here

Я ввожу учетные данные fb и получаю эту ошибку

enter image description here

Если я пытаюсь снова нажать накнопка, на которую я получаю тот же ответ от facebookLoginStatus(), который я показал на первом изображении, и всплывающее окно facebook показывает то же сообщение об ошибке на предыдущем изображении.Если я перезагрузлю страницу, то ответ facebookLoginStatus() будет таким, какой я ожидаю для зарегистрированного пользователя на Facebook, и процесс входа в систему завершается без ошибок

enter image description here

1 Ответ

0 голосов
/ 17 мая 2019

Я могу порекомендовать использовать https даже на локальном хосте, особенно потому, что у вас будет система для тестирования, более похожая на живую среду. Это решает проблему https на Facebook раз и навсегда.

Для Node.js этот инструмент очень прост: https://github.com/davewasmer/devcert

Для PHP вы можете взглянуть на эту тему: Как разрешить HTTPS для Apache на localhost?

Для Angular CLI: Получить угловую подачу по HTTPS

...