我已经在我的网站中使用苹果登录实现了登录/注册,一切正常。我已经创建了一个服务 ID、创建了密钥、配置了重定向 URI 并生成了客户端密钥。
现在我正在尝试在我的 iOS 应用程序上实现登录,并使用 Apple API 通过我们的后端验证登录。登录在 iOS 上正常运行,我们正确接收了授权代码,但我无法使用 Apple API 进行验证。
我在网站上使用完全相同的代码,只是更改客户端 id(我使用的是捆绑包 id)和我使用捆绑包 id 重新生成的客户端密钥。我总是得到以下回复:
{ "error": "invalid_grant", "error_description": "该代码已过期或已被撤销。" }
这是我用于验证的示例代码:
token_url = current_app.config.get('APPLE_OAUTH_URI') + '/token'
body = {
'grant_type': 'authorization_code',
'code': code,
'redirect_uri': current_app.config.get('APP_BASE_URL') + '/login/apple/callback',
'client_secret': client_secret,
'client_id': client_id
}
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
token_response = requests.post(
token_url,
headers=headers,
data=body
)
Run Code Online (Sandbox Code Playgroud)
我缺少什么?