Пустая страница после входа в систему является распространенной проблемой при использовании 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.