我正在尝试在网络上使用 Apple 对用户进行身份验证(这是必需的,因为我们还有一个 iOS 应用程序并有一个使用 Facebook 登录选项,我们也必须使用 Apple 登录,否则 Apple 会拒绝我们在 iOS 端的应用程序更新)这是我的元标记(敏感信息已编辑),如 Apple 的示例所示:
<meta name="appleid-signin-client-id" content="com.myapp">
<meta name="appleid-signin-scope" content="name email">
<meta name="appleid-signin-redirect-uri" content="https://my.return.url">
<meta name="appleid-signin-state" content="x login">
<meta name="appleid-signin-nonce" content="some number">
<meta name="appleid-signin-use-popup" content="false">
当用户点击按钮时,它会要求正确共享姓名和/或电子邮件:
我继续,并按预期调用了我的重定向 URL。但是,当我解码返回的内容时,除了与 JWT 相关的字段外,id_token
我只看到email
和email_verified
字段。我没有任何与用户名相关的信息。我知道名称字段仅在第一次身份验证时填充,因此这是在从“使用 Apple ID 的应用程序和网站”页面从我的 Apple ID 中删除我的应用程序后重新登录后。如果我将appleid-signin-scope
元标记更改为name
我也不会收到电子邮件,那么这个值就会以某种方式得到尊重。我也没有触及屏幕截图中有关名称字段的任何内容(我可以通过 Touch ID 进行操作,甚至无需单击任何内容)但是id_token
只能有email,不能有名字。除了电子邮件之外,我还需要获取用户的姓名才能完成注册,并且我不得不添加“使用 Apple 登录”选项以将任何更新推送到我的 iOS 应用程序。许多人报告说他们只是第一次得到这个名字(正如苹果明确指出的那样),但我什至第一次都没有得到它。
我究竟做错了什么?