我已經實現了谷歌登錄功能,並且它可以在任何桌面上正常工作。它曾經工作的移動也很有效,但因爲最近它正顯示出兩種類型的怪異的行爲:如果我試着點擊Android版Chrome瀏覽按鈕谷歌登錄不可登錄並凍結在手機上登錄
,我必須點擊它至少5倍直到它迴應。我用過遠程調試,但沒有錯誤。即使更加狡猾,如果我通過遠程調試點擊按鈕,它會立即響應。我的網站上沒有其他元素顯示此行爲。
當現有用戶單擊要登錄的按鈕時,會爲accounts.google.com打開一個新選項卡,該選項卡保持白色。在後臺,原來的標籤實際上是登錄的,但是用戶看不到這個原因,「白色」標籤是活動標籤。
控制檯根本沒有顯示任何錯誤,在桌面上一切正常。我無能爲力......任何想法,我應該開始尋找?
我對按鈕的代碼:
<div id="signinButton">
<span class="g-signin"
data-scope="https://www.googleapis.com/auth/gmail.readonly"
data-clientid="{{ CLIENT_ID }}"
data-redirecturi="postmessage"
data-accesstype="offline"
data-cookiepolicy="single_host_origin"
data-callback="signInCallback">
</span>
</div>
簽到的Javascript:
function signInCallback(authResult) {
if (authResult['code']) {
var state = encodeURIComponent('{{ STATE }}');
var code = encodeURIComponent(authResult['code']);
$.ajax({
type: 'POST',
url: '/signup/gauth',
contentType: 'application/octet-stream; charset=utf-8',
success: function(result) {
if (result == 'Success') {
console.log('Logged in');
}
},
processData: false,
data: 'code='+code+'&state='+state
});
} else if (authResult['error']) {
console.log('Sign-in state: ' + authResult['error']);
}
}
謝謝您的回答。不幸的是,上面的代碼無法正常工作,但是您更新到新版本可以解決問題。我通過遷移到新版本並切換到自定義按鈕來解決問題。將在一秒內發佈工作代碼。 – Vincent
我認爲導致你的代碼不工作,是我需要離線訪問,以及它沒有給。 – Vincent
離線訪問是不同的,要做離線,你現在需要調用auth2.grantOfflineAccess – class