JS ile Google Giriş kullanıyorum ve kodumun iki kez veri aldığını görüyorum. Bunun neden böyle olduğundan emin değilim.Google Giriş İki kez mi vuruluyor?
"Google ile Oturum Aç" düğmesini tıkladığımda, kullanıcı için tükendiğinde (console.con (sonuç)) veriyi dağıtır. Daha sonra bir hesap seçmemi isteyen bir istemi (birkaç google hesabına giriş yaptım). İstediğim hesabı tıkladığımda, kod o kullanıcı verilerini tekrar tükürür.
Bu neden oluyor? Bu bir problem çünkü verileri tükürdüğümde, kullanıcıyı doğrulamak ve daha sonra yönlendirmek için ajax araması yapmak istiyorum. Yani özünde, bunu iki kez yapmaya çalışıyor - bu pek de iyi değil, ne olursa olsun kimlik bilgilerini kullanarak giriş yapmak istemiyorsam, google ilk dolaşımda geri dönüyor mu?
(function() {
var po = document.createElement('script');
po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
function googleLogin() {
var additionalParams = {
'callback': googleCallback
};
gapi.auth.signIn(additionalParams);
}
function googleCallback(authResult) {
if (authResult['status']['signed_in']) {
gapi.client.load('oauth2', 'v2', function() {
gapi.client.oauth2.userinfo.get().execute(function(resp) {
console.log(resp);
})
});
} else {
console.log('Sign-in state: ' + authResult['error']);
}
}
Güncelleme: I (bir ve sadece bir tanesi hariç) tüm Google hesaplarının çıkış yaparsanız, google çağrısı hala yineleniyor. Bu sefer oturum açar ve ben konsol.log() verilerini iki kez çıktı olarak görüyorum. Erişim belirteçleri aynıdır.
Güncelleme 2: Sadece daha açıklama:
iki kez ne outputted olandır mı? "Console.log (sırasıyla);" veya "console.log ('Oturum açma durumu:' + authResult ['error']);"; Sanırım daha sonra mı? –
console.log (resp); kullanıcının bilgisi iki kez. Orijinal gönderiimde, önce varsayılan kullanıcı. Ve sonra seçtikleri accu kullanıcı bilgileri. Güncellememde, varsayılan değeri iki kez. – Mike
https://developers.google.com/+/web/signin/javascript-flow adresindeki eğiticiyi takip ettiğimde ancak kodunuzu "gapi.client.load", "console.log (resp)" içinde kullandığını; sadece bir kez çağrılır. –