Jwt 如何获得用户';谁的名字登录苹果?

Jwt 如何获得用户';谁的名字登录苹果?,jwt,apple-sign-in,apple-login,Jwt,Apple Sign In,Apple Login,我正在尝试通过网络上的苹果验证用户身份(这是必需的,因为我们也有一个iOS应用程序,并且有一个使用Facebook登录的选项,我们也必须使用苹果登录,否则苹果会拒绝在iOS端更新我们的应用程序),下面是我的元标签(编辑敏感信息),如苹果的示例所示: <meta name="appleid-signin-client-id" content="com.myapp"> <meta name="appleid-signin-scope

我正在尝试通过网络上的苹果验证用户身份(这是必需的,因为我们也有一个iOS应用程序,并且有一个使用Facebook登录的选项,我们也必须使用苹果登录,否则苹果会拒绝在iOS端更新我们的应用程序),下面是我的元标签(编辑敏感信息),如苹果的示例所示:

<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。但是,当我解码返回的
id\u令牌
时,除了JWT相关字段外,我只看到
email
email\u-verified
字段。我没有任何与用户名相关的信息。我知道名称字段仅在第一次身份验证时填充,因此这是在从“使用Apple ID的应用程序和网站”页面中从我的Apple ID中删除我的应用程序后进行的新登录。如果我将meta标记上的
appleid-signin-scope
更改为
name
,我也不会收到电子邮件,因此该值在某种程度上受到尊重。在屏幕截图中,我也没有触及任何与姓名字段相关的内容(我可以通过触摸ID进行操作,甚至不点击任何内容),但是
ID\u令牌
只能包含电子邮件,而不能包含姓名。为了完成注册,除了电子邮件之外,我还需要获取用户名,我还被迫使用Apple选项添加登录,以向我的iOS应用程序推送任何更新。很多人都说他们只是第一次得到这个名字(正如苹果明确指出的那样),但我甚至第一次都没有得到这个名字


我做错了什么?

代码需要请求文档中指定的
UserI
属性

示例:

<meta name="appleid-signin-client-id" content="com.myapp">
<meta name="appleid-signin-scope" content="UserI">
<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">


这可能是一种安全功能吗?使用apple ID登录的用户会认为只有他们的apple ID与您共享???@MrR否。它提供了一个屏幕,我可以显式启用/禁用共享名称/真实邮件。我正在用我自己的帐户进行测试,我正在授予权限。你从哪里得到HTML标记的内容应该设置为文本“UserI”?我在链接的文档中没有看到它。UserI是一个接口,没有接口名“UserI”被用作HTML标记的字符串文本的概念。它是一个signin范围值。是否有指向它指定这种用法的链接?不是在答案的链接上,我以为是的。我在答案中添加了一个显示它的图像。我已经看到了该页面,但是没有使用
UserI
作为文本字符串值的概念。它不是一个字符串,而是一个接口名。