我正在网页上实现“使用 Google 登录”功能,遵循本页面上的指导:https://developers.google.com/identity/gsi/web/reference/js-reference。
我想这样做,以便当按下我们的自定义样式按钮时,会出现“使用 Google 登录”弹出窗口。因此,我已经做到了,以便在单击按钮时调用 google.accounts.id.prompt,如下所示:
<html>
<body>
<script src="https://accounts.google.com/gsi/client" async></script>
<script>
function handleCredentialResponse(response) {
console.log("Encoded JWT ID token: " + response.credential);
}
window.onload = function () {
google.accounts.id.initialize({
client_id: "XXXXXXXXX.apps.googleusercontent.com",
callback: handleCredentialResponse
});
document.getElementById("buttonDiv").onclick = function() {
google.accounts.id.prompt();
};
}
</script>
<div id="buttonDiv">test</div>
</body>
</html>
最近,我注意到此功能已停止工作。调用 google.accounts.id.prompt 时,开发控制台输出以下错误消息,并且不出现登录弹出窗口:
[GSI_LOGGER]: FedCM get() rejects with AbortError: Request has been aborted.
我于 2024 年 4 月 7 日注意到此错误。我不知道它何时开始发生,但截至 2024 年 3 月 20 日,它运行正常,没有任何问题。而且,这个问题在 Google Chrome 上出现,但在 Firefox 上却没有。
这个问题有什么潜在原因和解决方案吗?
我处于同样的情况,但我的错误是
[GSI_LOGGER]: FedCM get() rejects with AbortError: signal is aborted without reason
。看起来谷歌做了一些改变,但不知道如何修复这个错误。我尝试使用 use_fedcm_for_prompt: true,
作为文档推荐,但没有成功。
在 Mozilla 或 Safari 中它运行良好。