在Apple身份验证期间获取电子邮件ID值null作为响应

时间:2019-10-01 10:40:39

标签: ios authentication oauth expo

我正在使用expo-apple-authentication包在react native中实现apple-authentication。

下面是我在按钮的onPress上调用的代码。

async handleSocialLogin() {
        const { mutate, BB, onSuccess, navigation } = this.props;
      try {
        const result = await AppleAuthentication.signInAsync({
          requestedScopes: [
            AppleAuthentication.AppleAuthenticationScope.FULL_NAME,
              AppleAuthentication.AppleAuthenticationScope.EMAIL,
          ],
        });        


        Alert.alert(JSON.stringify(result))
        // signed in
      } catch (e) {
        Alert.alert(e)
        if (e.code === 'ERR_CANCELED') {

          // handle that the user canceled the sign-in flow
        } else {
          // handle other errors
        }
      }
  }

它应该返回我在范围内请求的身份验证令牌,Full_Name和电子邮件,但它却为我提供了Full_Name和Email的空值。

1 个答案:

答案 0 :(得分:0)

根据文档:

  

requestedScopes (AppleAuthenticationScope [])(可选)-应用程序请求访问的用户信息范围的数组。请注意,用户可以在登录时选择拒绝您的应用程序对任何范围的访问。您仍然需要为您请求的任何范围处理空值。 此外,请注意,仅当每个用户首​​次登录您的应用时,才会向您提供请求的范围;在后续请求中,它们将为空

您可能已经登录过一次,但没有捕获日志。后续登录将导致该数据为