如何处理通过 CNAME 加载为域的子域上的社交登录?

How to handle social logins on subdomains loaded as domains via CNAME?

我有一个项目,其中为我的每个用户创建了子域。所以,如果我的项目是 example.com,我的一个客户可能有 steve.example.com.

然后我添加了 Google 和 Facebook 的社交登录。对于 Google 的 "Authorized JavaScript origins" 和 "Authorized redirect URIs",它们不允许通配符域。处理此问题的最佳方法是什么?

接下来,对于想要通过 CNAME 在自己的域中加载 steve.example.com 的用户来说,情况会变得更加复杂。因此,如果 example2.com 的 DNS 指向 steve.example.com,看来我需要将 example2.com 添加到我的授权 Javascript 来源。处理这个问题的最佳方法是什么?我可以通过 API 添加吗?我找不到与此相关的任何文档,我宁愿不必手动将 1000 个子域和域添加到 Google.

您是否希望用户为站点 1 授权范围 "A" 并使其自动获得站点 2 的批准?很可能不会。

如果您使用相同的客户端 ID(将它们全部放在同一个项目中),这意味着它们应该只被用户批准一次。如果网站不同并且用户可能不想登录其中一个网站而是登录另一个网站,这可能会侵犯隐私。 要解决这个问题,您应该为每个客户创建不同的客户 ID。 创建 project/client ID 的另一个很好的理由是,如果由于某种原因存在滥用并且其中一个客户端 ID 被泄露,那么 other/all 客户不会受到影响。

如果您要为每个项目创建 project/client id,那么您应该在配置期间在那里添加正确的子域。我还建议不要将所有项目(如您所说的 1000 个)都放在一个 Google 帐户中。