我正在使用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的空值。
答案 0 :(得分:0)
根据文档:
requestedScopes (AppleAuthenticationScope [])(可选)-应用程序请求访问的用户信息范围的数组。请注意,用户可以在登录时选择拒绝您的应用程序对任何范围的访问。您仍然需要为您请求的任何范围处理空值。 此外,请注意,仅当每个用户首次登录您的应用时,才会向您提供请求的范围;在后续请求中,它们将为空。
您可能已经登录过一次,但没有捕获日志。后续登录将导致该数据为空