苹果登录JS返回“invalid_request:无效的redirect_uri。”

14

我已经开始将“使用 Apple 登录”功能集成到我的网站上,但我遇到了一些问题。我认为我已经按照他们的要求在 Apple 的后台进行了配置。

开发者

开发者2

代码

接下来,我根据一篇文章中给出的示例配置了我的 HTML/CSS/JS 代码。但当我点击“使用 Apple 登录”按钮时,会显示以下屏幕:

输入图片说明

我已经花费数小时来解决这个问题,但仍然无法解决。请问我做错了什么?

谢谢, Jackson

7个回答

12

我也遇到了同样的问题。有几个细节让我困扰:

  1. 在苹果开发者门户网站中,你的“返回URL”需要以“https://”开头,例如https://myawesomepwa.com。同时,“域名和子域名”不能使用https;必须是裸域名,例如myawesomepwa.com。

  2. 确保你指定的所有URL都没有尾随斜杠。

  3. 在你的JS代码中,确保你的重定向URL没有尾随斜杠:

JS代码示例:

AppleID.auth.init({
    clientId : this.clientId,
    scope : "email",
    redirectURI : "https://myawesomepwa.com",
    state : "initial",
    usePopup : true
});

我做了那个之后,使用苹果登录开始工作了。


1
谢谢您的回复。我按照AWS提供的Apple登录文档操作,但没有注意到“在Web域下,输入您的用户池域名。在返回URL中,输入您的用户池域名并包括/oauth2/idpresponse端点。”这意味着返回URL需要添加“https://”。太好了,问题解决了。谢谢。 - Benjamin Heinke

3
在我的情况下,错误信息“invalid_request: Invalid redirect_uri.”是误导性的!问题在于我没有在“证书、标识符和配置/密钥”中创建一个密钥。
所以:点击+号创建新的密钥->输入名称并勾选“使用Apple登录”->单击复选框旁边的配置按钮->选择您的主要应用程序ID。
我遵循了这篇教程:使用Apple登录:了解新的身份提供者

1
我已经使用Firebase配置了苹果登录,并且也收到了相同的错误,但我们的代码中没有添加任何重定向URL。
  1. 你只需要前往标识符https://developer.apple.com/account/resources/identifiers
  2. 从下拉菜单中选择服务ID。
  3. 选择适当的标识符。

enter image description here

将在Firebase帐户上看到的网站URL添加进去。

enter image description here


1

看起来你已经解决了它,我认为问题在于redirect_uri末尾的斜杠,去掉它可能会解决这个问题。


0

如果已经存在,请创建一个新的标识符。


0

我遇到了同样的错误,因为我有一些查询字符串,例如?param=dynamic.value

通过删除查询字符串,错误消失了。

我能够通过这种方式传递动态值:

state: JSON.stringify({ param: 'dynamic.value' })

0

tl;dr:尝试使用Apple控制台创建新的服务ID。

我遇到了这个问题,使用正确的配置在Apple配置中创建了一个新的服务ID,并使其工作。
我记得我第一次创建它时打了一个错别字,然后立即更新了端点。更新没有被考虑在内。
使用"复制到剪贴板"按钮检查与服务相关的当前URL设置。您肯定会在URL中看到错别字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接