我们可以在用户未连接时禁用自动身份验证吗?
换句话说,我希望用户只有在点击按钮时才能连接。
这是我的代码:
<script src="https://apis.google.com/js/platform.js?onload=onLoadGoogle" async defer></script>
<script>
function onLoadGoogle() {
gapi.load('auth2', function () {
gapi.auth2.init();
});
}
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
// The ID token you need to pass to your backend:
var id_token = googleUser.getAuthResponse().id_token;
if (gapi.auth2.getAuthInstance().isSignedIn.get()) {
$.ajax({
type: 'POST',
url: $('#yBaseUrl').val() + '/ControllerAuthentification/getMailAllCompte',
data: {
mail: profile.getEmail()
},
dataType: "json",
success: function (data) {
if (data == 1) {
window.location.href = "index.php/ControllerAccueil";
},
error: function (e) {
if (e.responseText == "") {
toastr.info("Vous n'êtes pas inscrit par ce compte google!!", 'Notification');
}
console.log(e.responseText);
}
});
}
}
;
</script>
这里的问题是在函数onSignIn中已经建立了连接,因此总是
gapi.auth2.getAuthInstance().isSignedIn.get()
返回true
答案 0 :(得分:0)
我找到了一个注销用户的解决方案:
function signOutGoogle() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
//console.log('User signed out.');
});
}
N.B:注销在localhost中不起作用。