我被困在这几个小时。我已经尝试谷歌搜索答案,但我不理解它们中的任何一个,并且必须假设它是过时的代码。
我正在尝试向我的网站添加“使用谷歌登录”,但我希望它仅重定向到登录检查,如果用户点击按钮,而不是在检测到我已经登录时
按钮:
<div class="g-signin2" data-onsuccess="onSignIn"></div>
脚本:
<script>
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
console.log('ID: ' + profile.getId());
console.log('Name: ' + profile.getName());
var id_token = googleUser.getAuthResponse().id_token;
window.location.replace("googleLogin.phptoken="+ id_token);
}
</script>
任何人都征服了这个问题?
答案 0 :(得分:0)
我真的不记得我做了什么来解决这个问题,但我有同样的一个最终制作一个新的脚本在这里是一个js小提琴的链接,你将不得不插入自己的客户端ID,它没有&#39;有一个图像,所以你只会看到谷歌登录按钮的图片。
var googleUser = {};
var startApp = function() {
gapi.load('auth2', function(){
// Retrieve the singleton for the GoogleAuth library and set up the client.
auth2 = gapi.auth2.init({
client_id: '83******98-pe4uneu******sj.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin',
// Request scopes in addition to 'profile' and 'email'
//scope: 'additional_scope'
});
attachSignin(document.getElementById('customBtn'));
});
};
function attachSignin(element) {
console.log(element.id);
auth2.attachClickHandler(element, {},
function(googleUser) {
first_name = googleUser.getBasicProfile().getGivenName();
last_name = googleUser.getBasicProfile().getFamilyName();
email = googleUser.getBasicProfile().getEmail();
console.log(googleUser.getBasicProfile().getGivenName());
console.log(googleUser.getBasicProfile().getFamilyName());
console.log(googleUser.getBasicProfile().getEmail());
window.location = "/profile"
}, function(error) {
alert(JSON.stringify(error, undefined, 2));
});
}
startApp();
https://jsfiddle.net/josephmckenzie/9pxc41kx/
您需要的所有代码都在js小提琴
中