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