使用服务标识符在 Oauth2 代码授权流程的第一个重定向到 apple 时使用 apple "invalid_client" 登录

Sign in with apple "invalid_client" on the first redirect to apple of the Oauth2 code grant flow using service identifier

在这一点上,我可能在 apple 的配置面板中遗漏了一些非常明显的东西,但是在与其他几个人花了一天时间并恢复到 vanilla 节点(没有第三方依赖项)之后。

我们的帐户中有 2 个应用标识符,并选中了“使用 Apple 登录”和“推送通知”。我在某个时候向其中一个添加了一个服务标识符,并将一个重定向 URI 列入了白名单。本地一切正常。

我开始生产了,尽管 uri 已列入白名单,但对于完全相同的配置,我一直收到错误的重定向 uri。我想这可能是因为有 2 个 uris,所以我删除了那个有效的,希望生产中的那个能开始工作。

None 他们已经工作了。

我添加了一组新的应用程序 ID + 服务 ID + 密钥以用于整个流程,并且在第一次重定向到苹果时我从未通过“invalid_client”。

代码:


    const url = new URL("https://appleid.apple.com/auth/authorize");

    url.searchParams.append("state", "fdbd287b1f");
    url.searchParams.append("response_type", "code");
    url.searchParams.append("scope", "name email");
    url.searchParams.append("response_mode", "form_post");
    url.searchParams.append(
      "redirect_uri",
      "https://raiseitupdev.com/auth/apple/redirect",
    );
    url.searchParams.append("client_id", "com.myname.auth");

    return res.redirect(url.toString());

我们通过进入“更多”>“配置”并添加我们的域来解决此问题,确保 SPF 标记为绿色(如果不是绿色,请快速 google 了解如何修复它你的配置)。在此之后,我们不再收到 invalid_client 个错误。
让我们偶然发现的事情是它看起来并不重要,因为它说它是用于电子邮件 - 我们略过它以为我们可以稍后再回来..