PWA пустая страница Facebook - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть приложение PWA, в котором вам нужно войти в систему через Facebook, все идет хорошо, и если вы находитесь в браузере, вход в систему работает очень хорошо.Проблема возникает, когда вы добавляете веб-сайт на свой мобильный телефон, и он открывается в PWA, и вы нажимаете кнопку входа в Facebook, он открывает пустую страницу и не перенаправляет в приложение. Если вы закроете страницу, вернитесь в приложение.и нажмите еще раз Facebook, когда пользователь вошел в систему, но кто-нибудь знает, как избавиться от белой / пустой страницы?

Я пробовал «redirect_uri» и «display: touch», но ничего из этогокажется, работает больше.

1 Ответ

0 голосов
/ 28 декабря 2018

Пустая страница после входа в систему является распространенной проблемой при использовании Facebook в качестве метода входа, особенно когда мы находимся в режиме разработки.

Это происходит потому, что вы уже вошли в систему и авторизовали приложение, поэтомукогда он снова пытается войти в систему, он пропадает.

Самый простой способ исправить это - сначала проверить, не вошел ли пользователь в систему и не авторизовал ли ваше приложение, прежде чем вызывать функцию .login ().

К счастью, Facebook предоставляет функцию для этого, где они обрабатывают (почти) все для вас.

Функция getLoginStatus ()

Функции getLoginStatus () определяют 1), вошел ли пользователь в Facebook, и 2), если пользователь уже авторизовал ваше приложение.

Для пользователя существует три возможных состояния:

  • Пользователь вошел в Facebook и авторизовал ваше приложение, в этом случае функция вернется: подключено.
  • Пользователь вошел в Facebook, но не аутентифицировал ваше приложение.В этом случае функция вернет: not_authorized.
  • Пользователь либо не вошел в Facebook, либо явно вышел из вашего приложения, в этом случае мы не знаем, какое это,почему возвращается: неизвестно.

Например:

Когда мы вызовем getLoginStatus (), мы получим объект, подобный следующему:

    {
  authResponse: {
    userID: '12345678912345',
    accessToken: 'kgkh3h4gkh3g4k2h4gk23h4gk2h34gk234gk2h34AndSoOn',
    session_Key: true,
    expiresIn: '5183738',
    sig: '...'
  },
  status: 'connected'
}

ТамВы можете видеть, что есть объект authResponse и объект статуса.Сначала мы сосредоточимся на объекте статуса, проверив каждый из трех возможных ответов.

    this.facebookProvider.getLoginStatus(response => {
  if (response.status === 'connected') {
    // User Authenticated and your App is authorized

  } else if (response.status === 'not_authorized') {
    // User authenticated but your app isn't authorized yet.
  } else {
    // the user isn't logged in to Facebook.
  }
});

Попробуйте сделать это и сначала выйдите из Facebook, прежде чем совершать вызов из PWA.

...