谷歌登录时未触发回调

问题描述 投票:0回答:6
javascript google-signin google-authentication google-api-js-client
6个回答
3
投票

就我而言:

The callback function was inside the body tag

如果回调函数在body标签中则不起作用,请将其移动到head标签中。


2
投票

您应该在 head 标签中添加 platform.js 脚本

<html>
<head>
<meta name="google-signin-client_id" content="MY_CLIENT_ID.apps.googleusercontent.com" />
<script src="https://apis.google.com/js/platform.js" async defer>    </script>
</head>
<body>
<div class="g-signin2" data-onsuccess="onSignIn"></div>

<script type="text/javascript">
        function onSignIn(googleUser) {
                console.log("Succesfully Singed in!!!");
        }
</script>
</body>
</html>

1
投票

检查开发者控制台并查看授权重定向URI是否指向您正在运行JavaScript的源?


1
投票

在我的例子中,成功事件没有触发,因为我试图从页面上包含的外部 js 文件连接一个函数。由于某种原因,只有当连接的函数出现在同一页面上时,回调才会起作用。

以前从未见过这样的事情。我想知道他们如何检查这一点。


1
投票

现在回答已经太晚了,但我想有人会需要这个:

  • 记得在谷歌控制台添加原始URI
  • 如果您在终端上没有看到任何 onSignIn 的内容,请检查浏览器的控制台

0
投票

在主体中定义函数后,唯一修复它的是设置

window.onSignIn = onSignIn

function onSignIn(googleUser) {
    ...
}
window.onSignIn = onSignIn // <-- this was necessary
© www.soinside.com 2019 - 2024. All rights reserved.