我在尝试将苹果登录集成到 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 令牌并能够冒充任何用户。例如,您可以将此方法用于开发目的。
在 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 令牌并能够冒充任何用户。例如,您可以将此方法用于开发目的。