我在尝试将苹果登录集成到 RoR 应用程序时拥有苹果授权令牌。我需要从中提取 emailId

I have apple auth token while trying to integrate apple login in RoR application. I need to extract emailId from it

在 jwt.io 站点解码时,我可以在那里看到 emailId 信息,但是 jwt gems 没有得到我想要的。关于如何在 ROR 应用程序中提取此信息的任何想法。

为了解码我尝试了这个

decode_token = JWT.decode apple_token, "", true, { 算法: 'HS256'}

Apple 令牌使用 RS256 算法签名,因此您应该使用该算法来验证和解码其令牌。您还需要 Apple 的 public 密钥来验证签名。

Apple 公开了一个 JWKS url,它在其中发布了他们的 public 密钥:https://appleid.apple.com/auth/keys

您可以使用 this example 查看如何使用从 JWKS 端点下载的 public 密钥解码令牌。

您也可以跳过签名验证,只对令牌进行解码:jwt.decode(apple_token, options={"verify_signature": False})但您应该谨慎使用这种方法 - 任何人都可以伪造 Apple 令牌并能够冒充任何用户。例如,您可以将此方法用于开发目的。