Tôi đang cố triển khai đăng nhập bằng Google cho trang web của mình. Nút Đăng nhập hiển thị chính xác và có dấu hiệu-người đầu tiên. Vấn đề của tôi xảy ra khi tôi đăng xuất sau khi đã sử dụng trang web và cố gắng chuyển sang trang Đăng nhập (Tôi đang sử dụng React, vì vậy, đó là tất cả một trang). Tôi sử dụng chính xác chức năng tương tự để hiển thị trang Đăng nhập nhưng nó cho tôi một "cb = gapi.loaded_0: 249 Uncaught TypeError: Không thể đọc thuộc tính 'style' của null". Các lỗi trong GAPI xảy ra ở đây (ít nhất tôi nghĩ):Không thể đọc thuộc tính 'kiểu' rỗng - Nút Đăng nhập của Google
a.El;window.document.getElementById((c?"not_signed_in":"connected"
Đây là cách tôi ban đầu thêm nút đăng nhập được hiển thị:
elements.push(h('div.g-signin2',{'data-onsuccess': 'onSignIn'}))
return h('div.page_content',elements)
mà sau này tôi làm với một ReactDOM. gọi lại.
Đây là cách tôi xử lý SignOut và đăng nhập:
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function() {
// console.log('User signed out.');
signedin = false;
auth2 = null;
renderPage()
});
}
var google_idtoken;
var signedin = false;
// set auth2 to null to indicate that google api hasn't been loaded yet
var auth2 = null;
function onSignIn(googleUser) {
auth2 = gapi.auth2.getAuthInstance({
client_id: 'ClientID.apps.googleusercontent.com'
});
google_idtoken = googleUser.getAuthResponse().id_token;
wrongemail = true;
// if(auth2 != null && auth2.isSignedIn.get() == true){
if ((((auth2.currentUser.get()).getBasicProfile()).getEmail()).split("@").pop() == 'domain.com'){
signedin = true
wrongemail = false
}
updateSources()
// renderPage()
}
Đó không phải là nơi xảy ra lỗi. Phải có một 'element.style' ở đâu đó trong mã của bạn với một số' element' đánh giá là 'null'. Trong mọi trường hợp, phải có tên tệp kịch bản và số dòng với lỗi trong bảng điều khiển cho biết nơi xảy ra lỗi. – user2570380