sam
(Sam Saffron)
1
从 Discourse 上线社交登录功能之初,桌面端就一直使用“弹窗”窗口进行登录。
其初衷是尽量减少干扰,让用户在“登录”操作进行时仍停留在原网站上。
我认为继续保留这种做法已无意义,原因有几点:
首先,这与 Discourse SSO 的工作方式不一致;其次,在禁止弹窗的浏览器上它可能不稳定(我的 Firefox 会发出警告,需要点击才能启用);此外,发布消息的代码复杂且难以维护,而且我们现在在弹窗中已经需要额外点击一次。
您是否同意废弃“为社交登录弹出窗口”的代码,只保留一种统一的登录方式,无论是 SSO、社交登录还是其他方式?
@codinghorror / @david / @eviltrout?
26 个赞
david
(David Taylor)
2
我同意我们应该移除弹窗,并使所有内容保持一致。这样我们也可以扔掉大量代码:
你在 Firefox 中描述的问题是可以修复的,但正如你所说,弹窗代码很复杂,容易出现此类错误。
如果你愿意的话,我可以在本周晚些时候处理这个问题?
18 个赞
david
(David Taylor)
6
我已经为此创建了一个 PR
一旦它最终进入稳定版,我们应该从插件(例如 OAuth2、OIDC)中移除冗余的“全屏”配置选项。
15 个赞
david
(David Taylor)
8
我们正在对身份验证代码中一些相当关键的部分进行修改,因此该分支现已部署到 Meta 进行测试。
如果大家有时间,请尝试使用不同的提供商登录,并在偏好设置中断开/重新连接账户。如果发现任何问题,请告诉我,我会进行调查 
这也是一个尝试我们新的 Discord 身份验证的好机会,它已在此处的 Meta 上配置完成 
6 个赞
jomaxro
(Joshua Rosenfeld)
11
已测试通过 Facebook、Google、Twitter 和 Discord 登录,均成功。此外,还测试了从用户偏好设置中取消并重新连接同一账户,两个过程均顺畅。由于关联到 GitHub 的 Discourse 账户启用了双因素认证(2FA),我无法测试 GitHub 登录。
5 个赞
jomaxro
(Joshua Rosenfeld)
12
进行了进一步的测试(上述测试均在 Windows 上的 Chrome 中进行)。我确认登录功能在 Windows 上的 IE、Edge 和 Firefox 中也能正常工作。发现了两个小错误,一个与登出相关,另一个与 IE 中的账户连接相关,但这两个问题在本次更改之前已被确认存在。
5 个赞
david
(David Taylor)
13
感谢测试 @jomaxro。
PR 在此 here。这是一个核心缺陷,由于 Facebook 坚持在回调 URL 中添加哈希值 而变得更加严重。
这是一个缓存问题,仅影响 IE11。应已通过 此提交 修复。正在将该修复部署到 Meta 平台:
12 个赞
eviltrout
(Robin Ward)
14
听起来很棒!也许我们可以在下一个测试版发布后进行合并。
6 个赞