语境
- 为 iOS 13.2 用 Swift 编写的 iOS 应用(不使用 Firebase iOS SDK)
- 应用通过 REST 调用使用 Firebase 实时数据库(因此需要来自 Firebase 身份验证的 ID 令牌)
我正在尝试将我的 iOS 应用程序切换为使用 Apple 的“使用 Apple 登录”功能,以通过 Firebase 身份验证的“电子邮件/密码”登录提供程序替换简单的用户名/密码身份验证。
用户成功的“Apple 登录”将为我留下来自 Apple 的 JWT 令牌(身份令牌),例如这个(解码和编辑):
HEADER
{
"kid": "ABCDPK1",
"alg": "RS256"
}
BODY
{
"iss": "https://appleid.apple.com",
"aud": "XYZ.App",
"exp": 1574131940,
"iat": 1574131340,
"sub": "01234.1234561ecd054cd285d65cc7af261958.0123",
"c_hash": "ABCDe-csTpNdUa0Eri5wFw",
"email": "user@privaterelay.appleid.com",
"email_verified": "true",
"is_private_email": "true",
"auth_time": 1574131340
}
问题
当我使用Firebase 身份验证 REST API尝试将自定义令牌交换为 ID 和刷新令牌时,我收到以下消息(是的,我已确保令牌在使用时没有过期):
{
"error": {
"code": 400,
"message": "INVALID_CUSTOM_TOKEN",
"errors": [
{
"message": "INVALID_CUSTOM_TOKEN",
"domain": "global",
"reason": "invalid"
}
]
}
}
我希望 Firebase 身份验证中的新“Apple”登录方法能够解决这个问题,一旦配置好,我就可以从 Apple 传递 JWT 令牌。我错过了一步吗?
谢谢 !