Повторный запрос разрешений Facebook в JS SDK и Angular. - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть следующая функция для предоставления аутентификации с помощью Facebook.

public facebookLogin(): void {


        FB.getLoginStatus(
            (response: any): void => {
                if (response.status === 'connected' && response.authResponse) {
                    this.userFacebookLogin(response);
                } else {

                    FB.login(
                        (response: any): any => {
                            let scopes = response.authResponse.grantedScopes;
                            scopes = scopes.split(',');
                            if (!scopes.includes('email')) {
                                this.errors = 'Please give access to email address in order to login with Facebook successfully';
                                return;
                            }
                            this.userFacebookLogin(response);
                        },
                        {
                            scope: 'email',
                            return_scopes: true,
                            auth_type: 'rerequest'
                        }
                    );
                }
            },
            true
        );
    }

Теперь я проверяю, подключен ли сначала логин, а затем вызываю другой метод, который, в свою очередь, вызовет сервис, который обрабатывает аутентификацию на стороне сервера на основе токена доступа. Мне нужно убедиться, что пользователь предоставил email разрешение на вход в систему и, следовательно, в функции входа в FB, я возвращаюсь, если он не находится в grantedScopes. Проблема с этой реализацией состоит в том, что, когда пользователь нажимает на логин и отменяет выбор электронной почты и дает разрешения Facebook, во второй раз, когда он нажимает на нее, он непосредственно вызывает функцию на стороне сервера, которая находится внутри подключенной проверки. Итак, как я могу снова запросить окно facebook после отображения сообщения об ошибке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...