上下文
- 用Swift为iOS 13.2编写的iOS应用(不使用Firebase iOS SDK)
- 应用通过REST调用使用Firebase实时数据库(因此需要来自 Firebase身份验证)
我正在尝试将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 Authentication REST API尝试将自定义令牌交换为ID并刷新令牌时,我收到以下消息(是的,我已经确保令牌在使用时没有过期) ):
{
"error": {
"code": 400,"message": "INVALID_CUSTOM_TOKEN","errors": [
{
"message": "INVALID_CUSTOM_TOKEN","domain": "global","reason": "invalid"
}
]
}
}
我希望Firebase身份验证中新的“ Apple”登录方法可以解决此问题,一旦配置,我就可以从Apple传入JWT令牌。我错过了一步吗?
谢谢!