问题标签 [apple-sign-in]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3622 浏览

ios - 如何从“使用 Apple 登录”验证 identityToken?

我正在尝试验证从“使用 Apple 登录”服务获得的身份令牌。

文档说身份令牌是 JSON Web 令牌(JWT),但我得到的身份令牌格式如下:

此令牌不是 JWT 格式。我应该如何处理身份令牌以获取 JWT 格式?

0 投票
2 回答
8931 浏览

php - 使用 Apple 登录 = invalid_client

我面临一个非常糟糕的问题,因为我阅读了很多指南和教程,但没有任何效果。

结果总是一样的:{"error":"invalid_client"}

我得到了代码、identityToken 和我需要的一切——除了对https://appleid.apple.com/auth/token的调用——因为 invalid_client。

这是我获取代码的网址。

https://appleid.apple.com/auth/authorize?response_type=code&client_id=org.example.service&redirect_uri=https%3A%2F%2Fexample.org

所以我有默认的工作流程。在接受/登录后,我将被重定向到我的页面。

https://example.org/?code=a277243e2ec324fb09ba1c3333a8e6576.0.abcde.u4xiTDP2qHXoNEaxrcrIGx

(当我使用 JavaScript API 时,我会得到其他信息,如状态、代码和 id_token。我也已经用那里的“代码”试过了。)

回到主函数。

这是我对苹果的要求。

智威汤逊标题:

智威汤逊有效载荷:

回复:

世界无用的错误信息。

我不知道为什么客户端应该是无效的。

我在https://developer.apple.com/account/resources/authkeys/list中有一个密钥,下载的文件名为 AuthKey_1ABC2345DE.p8。(表示 1ABC2345DE 是我的密钥 ID)

然后我有一个标识符为“org.example”的本机 iOS 应用程序和一个标识符为“org.example.service”的服务。

它不能同时使用 id 和混合不同的东西。

没有。无效客户端。

任何人都可以帮助我吗?我在这里坐了几个小时,只得到了 invalid_client

我的测试页面:

和 PHP:

0 投票
3 回答
4394 浏览

ios - 与 Apple 测试用户一起登录

我在哪里可以创建随机测试用户以测试“使用 Apple 登录”?为 Apple pay 创建的沙盒用户也不适用于此。

0 投票
1 回答
1792 浏览

javascript - Apple Sign in Javascript :: 如何处理成功的登录回调(redirect_uri)

我能够通过启动范围/客户端 ID、重定向 URI 等将苹果登录注入网站

现在成功登录后,苹果使用发布响应将响应重定向到重定向 URI,请原谅我的无知!但是如何在我的网站上处理这个回调?我可以在 Apple 库本身中使用它吗?或者我需要建立自己的东西?当我在后端使用 RESTFul API 时,我期望获取令牌并将其传递给后端

我的页面是这样的

谢谢

0 投票
2 回答
2808 浏览

oauth-2.0 - 如何在“使用 Apple 登录”同意屏幕中设置徽标?

在此处输入图像描述

我正在实施“使用 Apple 登录”。如何在“使用 Apple 登录”同意页面上使用我自己的应用程序图标,而不是显示占位符灰色徽标?

0 投票
0 回答
1069 浏览

ios - 如何验证 Sign in with Apple 的 access_token?

我看到了描述

您最多可以每天验证一次刷新令牌,以确认该设备上的用户 Apple ID 在 Apple 服务器上的信誉良好。

https://developer.apple.com/documentation/signinwithapplerestapi/verifying_a_user

我对描述有两个问题:

  1. 为什么我们要验证refresh token而不是 access token确认用户的 Apple ID 在 Apple 的服务器上仍然具有良好的信誉?
  2. 文档说刷新令牌每天只能验证一次。但我可以在实践中多次验证刷新令牌。文档和实现之间是否存在冲突?

在此处输入图像描述

2019年10月17日更新:</p>

对于在其他系统上运行的应用程序,使用刷新令牌的定期成功验证来确定用户会话的生命周期。

我还在https://developer.apple.com/documentation/signinwithapplerestapi/verifying_a_user中看到了上面的描述。我认为periodic也与once a day.

现在,我存储 access_token 并为后续验证请求设置自定义过期时间。并从 iOS 客户端(getCridentialState)获取通知以删除 access_token。

0 投票
0 回答
450 浏览

ios - 使用 Apple 登录 - 第二次使用真实电子邮件注册时如何识别用户

我对文档以及与 Apple 签约时的变量描述中的内容有点困惑。假设我们有一个场景:

  1. 用户Sign in with Apple使用虚假/生成的电子邮件地址。
  2. 用户在我的应用中切换设备或使用不同的设备。
  3. 他正在做Sign in with Apple,但使用真实的电子邮件地址。

在此处输入图像描述

问题:如何知道这是我数据库中的同一个用户?

上面链接的文档表明userin ASAuthorizationAppleIDCredentialobject 是我正在寻找的答案:

var 用户:字符串

与经过身份验证的用户关联的标识符。

但 Xcode 也会在变量描述中显示这一点:

/** @abstract 与用于登录的 AppleID 关联的不透明用户 ID。此标识符将在“开发人员团队”中保持稳定,稍后可用作 @see ASAuthorizationRequest 的输入以请求用户联系信息。

只要用户与请求客户端连接,标识符就会保持稳定。当用户与身份提供者断开连接时,该值可能会发生变化。 */

打开 var 用户:字符串 { 获取 }

这实际上意味着Sign in with Apple什么as long as the user is connected with the requesting client。根据该描述,我不确定用户是否可以以某种方式取消注册或更改此值,或者这可能会在设备切换情况下发生?

到目前为止我尝试了什么...

我已经在设备和模拟器中进行了测试,并且user在开发环境中的值保持不变,但不确定它是多么糟糕 IRL ...

0 投票
1 回答
902 浏览

google-cloud-functions - 使用 Apple Android 实施登录

我正在尝试使用 Firebase 函数来实现这一点。授权部分运行良好,我的端点被调用。仍然当我尝试点击令牌端点时,我总是得到{"error":"invalid_client"}. 下面是我的带有测试密钥的 firebase 功能:

我的猜测是,不知何故,我没有正确签署 client_secret,因为每次我尝试在 jwt.io 上验证它时,它都说它的签名无效。

0 投票
1 回答
1678 浏览

xcode - 禁用 iOS 固定

作为工作练习的一部分,我一直试图在未越狱的设备上使用 Frida 关闭应用程序上的 iOS 固定。我已经在线学习了多个教程,到目前为止,我只能在设备通过 USB 连接时执行此操作 - 并且项目通过 Xcode 运行。我的第一个问题是,我现在如何在同一设备上不使用 USB 和 Xcode 的情况下做到这一点?

我要做的下一件事是将 Frida 添加到我从另一个已发布应用程序获得的 IPA 文件中,重新签署 IPA 文件,然后看看它是如何工作的。不幸的是,我无法签署 IPA 文件,因为一旦我添加并签署 Frida 小工具并压缩 IPA,它就会返回以下错误:

我是一个非常新手的开发人员,并且很早就使用 Frida 这样的框架,所以非常感谢任何帮助。谢谢你。

0 投票
1 回答
11657 浏览

ios - 如何在 iOS Objective-C 中集成“使用 Apple 登录”流程?

我想在我的 iOS 应用程序中集成“使用 Apple 登录”。我为此找到了许多代码示例,但都在 Swift 中,我需要 Objective-C。