Google Sign-In работает с перебоями - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть страница, которая использует Google Sign-In.Это работает нормально большую часть времени;однако время от времени вместо получения «темной тематической кнопки шириной 240 пикселей», как определено в коде, я получаю маленькую белую кнопку, которая просто говорит «Войти».Когда страница загружает только маленькую белую кнопку, вход не работает должным образом.Код не динамический, поэтому я не знаю, почему иногда он отображает белую кнопку вместо синей кнопки.

Это то, что я ожидаю: This is good.

Иногда это выглядит так: This is bad.

Мой код начальной загрузки 4 + JS выглядит следующим образом:

<div class="container">
    <div class="row justify-content-center col-sm-10 col-md-8 col-lg-6 mx-auto">
        <div id="sign_in_button" class="g-signin2 my-5"></div>

        <div class="w-100 clearfix"></div>

        <div id="sign_out_canvas" class="d-none my-5">
            <button name="sign_out_button" id="sign_out_button" type="button" class="btn btn-light btn-sm">
                <i class="fas fa-sign-out-alt mx-1"></i>
                Sign out
            </button>
            <a href="javascript:void();" onclick="signOut();"></a>
        </div>
    </div>
</div>
</cfoutput>

<script>
    function renderButton() {
        gapi.signin2.render('sign_in_button', {
            'scope': 'profile email',
            'width': 240,
            'height': 50,
            'longtitle': true,
            'theme': 'dark',
            'onsuccess': onSuccess,
            'onfailure': onFailure
        });
    }

    function onSuccess(googleUser) {
        console.log('Google User logged in successfully.');

        $('div#sign_out_canvas').toggleClass('d-none');
        var profile = googleUser.getBasicProfile();

        $.ajax({
            url: '/model/security.cfc',
            method: 'POST',
            data: {
                method: 'signIn',
                'id': profile.getId(),
                'full_name': profile.getName(),
                'given_name': profile.getGivenName(),
                'family_name': profile.getFamilyName(),
                'image_url': profile.getImageUrl(),
                'email': profile.getEmail()
            }
        }).done(function(Data) {
            window.location.replace("/?Action=Home.Home");
        });
    }

    function onFailure(error) {
        console.log(error);
    }
</script>

1 Ответ

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

Какие триггеры renderButton ()?

Похоже, что он запускается не так часто, поэтому появляется стандартная (не тематическая синяя кнопка).

Поскольку это не тактриггер, ваша белая кнопка - это то, что остается, и что вам нужно выяснить, почему это не срабатывает?Это проблема с подключением?Есть ли ошибка в другом вашем коде, чтобы ваш сценарий никогда не запускался дальше?

проверьте консоль при возникновении ошибки, и вы, скорее всего, узнаете, что не срабатывает, и, таким образом, почему renderButtonне делает.

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