#react-native #authentication
#react-native #аутентификация
Вопрос:
Я не понимаю, почему приведенный ниже фрагмент кода показывает значение null для электронной почты и полного имени в консоли после успешной аутентификации пользователя. Я внимательно прочитал документацию и попробовал все, что мог. Любая помощь была бы высоко оценена.
async function onAppleButtonPress() {
// performs login request
const appleAuthRequestResponse = await appleAuth.performRequest({
requestedOperation: AppleAuthRequestOperation.LOGIN,
requestedScopes: [AppleAuthRequestScope.EMAIL, AppleAuthRequestScope.FULL_NAME],
});
//api getting current state of the user
const credentialState = await appleAuth.getCredentialStateForUser(appleAuthRequestResponse.user);
if (credentialState === AppleAuthCredentialState.AUTHORIZED) {
// user is authenticated
console.log("email is",appleAuthRequestResponse.email);
console.log("full name is",appleAuthRequestResponse.fullName);
}
}
Ответ №1:
Вы все еще можете получить электронное письмо из identityToken, предоставленного appleAuthrequestResponse
любым jwt-декодером, таким как jwt-decode
const {identityToken, nonce, email} = appleAuthRequestResponse
const {email} = jwt_decode(identityToken)
console.log(email)
Ответ №2:
Apple возвращает только полное имя и адрес электронной почты при первом входе в систему, при последующем входе в систему оно вернет значение null, поэтому вам необходимо сохранить эти данные.
Чтобы получить их снова, перейдите в настройки своего устройства; Settings > Apple ID, iCloud, iTunes amp; App Store > Password amp; Security > Apps Using Your Apple ID
, нажмите на свое приложение и нажмите Прекратить использование Apple ID. Теперь вы можете снова войти в систему, и вы получите полное имя и адрес электронной почты.
Источник здесь.