|||
-|-|-|
| 摘要 | Discourse Google One Tap 为 Discourse 添加了对 Google One Tap 注册和登录的支持。
| 存储库链接 | https://github.com/discourse/discourse-google-one-tap
| 安装指南 | 如何在 Discourse 中安装插件
功能
此插件为 Discourse 添加了 Google One Tap 登录和注册支持。安装并配置此插件后,匿名用户将看到如下提示:
从该提示中,他们可以使用当前登录的任何 Google 帐户来注册或登录(如果您的网站上已有同电子邮件地址的帐户)到您的 Discourse 实例。
配置
-
确保启用了 google_one_tap_enabled 设置。
-
按照 Setup | Web guides | Google for Developers 上的说明获取客户端 ID,并配置登录/注册提示和同意屏幕的外观。
-
将您从第 2 步获得的客户端 ID 添加到 google_oauth2_client_id 站点设置中。
更新日志
无。
致谢
非常感谢 @ghassan 开发了此插件的初始版本。
27 个赞
aosus
(Aosus)
2
感谢您提供的优秀插件,但似乎存在一个错误,该插件会创建一个不可见的 div,导致无法与它下方的任何元素进行交互。
它还在移动设备上为页面左侧创建了额外的空间。
移动设备:
桌面设备:
1 个赞
nathank
(Nathan Kershaw)
3
这与 Discourse 服务内置的 Google 登录有何不同?
1 个赞
Don
4
你好
是的,这个插件确实需要一些
我昨天测试过它,也遇到了同样的问题。看起来登录/注册模态框中的谷歌 iframe 也有问题。它似乎与其它社交按钮的对齐和样式不一致,而且如果我打开登录模态框然后切换到注册,谷歌按钮就无法渲染。
martin
(Martin Brennan)
8
嘿 Don,你能否提供更多信息和截图来详细说明一下?我在本地成功运行了:
但在隐身模式下,我遇到了同样的问题:
这可能有很多原因;例如,Google 添加的“指数退避”:
也许我们可以检测到它没有正确加载——但至少在 Chrome 中,“Sign in to localhost with google.com”这个元素根本不在页面上。也许我们可以利用这一点?
google.accounts.id.prompt((notification) => {
console.log(notification)
});
此 PR 应该可以解决此问题。@Osama 我移除了一些 CSS 样式。您方便的时候可以检查一下吗?
3 个赞
感谢您提供的出色插件,这正是我想要的。
但该插件是否也兼容最新的“Chrome 第三方 Cookie 弃用将于 2024 年第一季度开始”的更改?此处有更多关于 FedCM 要求及其迁移 的信息。
另一个观察。
功能非常相似,能否将其与 Discourse 已有的原生 Google 登录结合起来,这样登录屏幕就不会出现两个“使用 Google 登录”框?
1 个赞
@nathank 看来没有人回答你,所以我将回答我所认为的答案,或许还有一个问题?\n\n我认为这个“一键式”就是通常在用户访问某个网站时看到的谷歌账户创建提示,例如:\n\n
\n\n我相信这与原生谷歌身份验证支持的主要区别在于,当用户访问某个页面时就会触发这个提示,而不是用户主动找到登录/注册提示。
1 个赞
nathank
(Nathan Kershaw)
14
我非常感谢您回答我这个有点过时的问题!!
如果它(功能)真的那么简单(看起来确实如此),为什么不将此插件的功能合并到核心中呢??
2 个赞
是的,同意,或者将其作为核心中的一个选项。这是一种公认的增加注册量和减少入职摩擦的方法——用户对此类体验很熟悉。
1 个赞
Jagster
(Jakke Lehtonen)
16
该解决方案存在(或曾经存在)一些问题,导致登录实际上更加困难,并且在手机上看起来很混乱。抱歉,这个答案非常没用,因为我不再记得我禁用它的那些问题是什么了——即使在芬兰这里大多数人都使用 Gmail。
Jagster
(Jakke Lehtonen)
18
不要使用那个“普通的”谷歌登录。这并没有更难。我保留了两者,因为一键登录并非在所有情况下都有效。
没错,但我不想在拥有两个冗余按钮或在某些情况下完全没有按钮之间做出选择。 
它会在初始页面加载时无意中联系尝试登录/注册的任何用户的谷歌服务器。
- 导航到 Admin → Customize → Themes → CSS/HTML。
- 打开您当前主题的 CSS 编辑器。
- 将以下代码添加到 CSS 部分:
div#google_one_tap.btn-social {
display: none !important;
}
- 保存您的更改。
- 刷新页面以确保按钮不再可见。
2 个赞