我正在遵循这个文档google one tap sign in在我的react应用程序中实现谷歌一键登录。
我已经在我的组件JSX中添加了以下代码,并且我开始让google提示登录:
const handleCredentialResponse = response => {
console.log('response', response);
};
return (
<Fragment>
<div
id="g_id_onload"
data-auto_select = 'false'
data-client_id={clientId}
data-callback={(e) => handleCredentialResponse(e)}>
</div>
</Fragment>
);我面临的问题是回调函数没有触发。在寻找解决方案后,我偶然发现了这个SO question。在OP提出了类似的问题,并使用javascript API语法显示google一键而不是HTML代码来遵循上述问题时,我阅读了这个文档Use the One Tap JavaScript API。但是我不能理解google这个变量是从哪里来的?
示例代码:
window.onload = function () {
google.accounts.id.initialize({
client_id: 'YOUR_GOOGLE_CLIENT_ID',
callback: handleCredentialResponse
});
google.accounts.id.prompt();
}如果有人能告诉我这可能会解决我的回调函数不触发的问题。谢谢!
发布于 2020-12-31 21:21:01
在Nilesh Patel发表的评论和这个react-google-one-tap-login包的帮助下,我找到了一个解决方案。
检查上面的包中的源代码,我设法发现我必须
替换:
google.accounts.id.initialize({
client_id: CLIENT_ID,
callback: data => handleCredentialResponse(data),
state_cookie_domain: 'https://example.com',
});使用
window.google.accounts.id.initialize({
client_id: CLIENT_ID,
callback: data => handleCredentialResponse(data),
state_cookie_domain: 'https://example.com',
});https://stackoverflow.com/questions/65234862
复制相似问题