Привет, ребята, вы можете столкнуться с этой ошибкой Ошибка входа: произошла ошибка при входе в это приложение при запуске вашего приложения в производственной среде. (Если вы столкнулись с какой-либо проблемой в режиме разработки, обязательно проверьте настройку приложения здесь). Эта ошибка возникает ТОЛЬКО, когда у пользователей установлено приложение Facebook, поэтому на всякий случай, если вы не столкнетесь с какой-либо проблемой на своем устройстве, сделайте обязательно проверьте также с установленным приложением Facebook.

Справочная информация:

Я использовал вход в Facebook с помощью response-native, и он отлично работал над сборкой для разработки, позже, когда я выпустил приложение, когда пользователь нажимает кнопку входа в Facebook, появляется сообщение об ошибке, как показано ниже.

Так что есть два решения для этого. Первый подход проще, но это не НАСТОЯЩЕЕ решение, и я не рекомендую вам его использовать, но давайте проверим оба метода.

Первый способ: (не рекомендуется, так как при этом может потребоваться ввести пароль)

Когда вы делаете такой запрос на вход:

await LoginManager.logInWithPermissions([“public_profile”, “email”])

Непосредственно перед этим обязательно добавьте следующий код:

if (Platform.OS === "android") {
    LoginManager.setLoginBehavior("web_only")
}

await LoginManager.logInWithPermissions(["public_profile", "email"])

Таким образом, вход в Facebook будет использовать браузер для входа пользователя в систему, поэтому есть вероятность, что пользователям будет предложено снова ввести пароль, поскольку не все сохраняют свои учетные записи социальных сетей в браузере. Вот и все, это заставит его работать, но будет больше раздражать пользователей при работе с приложением.

Второй способ: рекомендуется (Добавьте хэш ключа подписи приложения в консоль разработчика Facebook)

Прежде всего, давайте просто разберемся, что нам здесь нужно делать. Как вы, возможно, знаете, при настройке приложения Facebook на консоли разработчика вы могли видеть поле «Ключевые хэши». Давайте сначала разберемся, что такое хеш-код и зачем он нужен.

Что такое ключевые хеши?

Ключевые хэши состоят из 28 символов, включая завершающий знак =, и ограничены следующими символами: [a-zA-Z0–9 + / =]

Зачем нужны ключевые хеши?

Поэтому всякий раз, когда из вашего приложения инициируется какой-либо запрос на вход, Facebook использует хэш ключа для аутентификации взаимодействия между вашим приложением и приложением Facebook. Поэтому, если ваши ключевые хэши не добавлены, LoginManager не сможет продолжить работу и сохранит его как несанкционированный доступ.

Как это исправить?

Чтобы решить эту проблему, убедитесь, что вы уже загрузили свое приложение в Play Store и включили «подписание приложений в Google Play».

  • Войдите в свою учетную запись Play Console.
  • Нажмите на приложение, с которым вы столкнулись с проблемой.
  • Теперь на левой боковой панели перейдите в Setup = ›App Signing, где вы увидите что-то вроде этого.

  • В разделе «Сертификат подписи приложения» скопируйте отпечаток сертификата SHA-1.
  • Теперь преобразуйте свой SHA-1 в действительный хэш ключа, используя любой из этих методов.

Метод 1. Онлайн-инструмент.

  • Откройте этот онлайн-инструмент, чтобы преобразовать его в действительный хеш ключа.
  • Вставьте SHA-1 в первое поле
  • Скопируйте текст из Вывод (base64)

Способ 2. Командная строка

  • Если вы не хотите использовать онлайн-инструмент для защиты своего SHA-1, вы можете использовать эту команду при ее выполнении, не забудьте заменить PASTE_YOUR_SHA1_HERE своим SHA-1 .
node -e 'console.log(Buffer.from(process.argv[1].split(":").map(hex => parseInt(hex, 16))).toString("base64"))' 'PASTE_YOUR_SHA1_HERE'
  • Он напечатает ваш SHA-1 в консоли, и вы можете скопировать его оттуда.

После того, как вы сгенерировали Key Hash:

  • Перейдите на developer.facebook.com/apps
  • Откройте свое приложение и на левой боковой панели перейдите в «Настройки» - ›« Основные ».
  • Прокрутите вниз, где вы видите ключевые хэши, и вставьте скопированный вывод (base64) сюда и сохраните изменения.
  • Вот и все.

Я пробовал это только с приложением, подписанным Google. Если вы подписываете приложение самостоятельно, этот метод может не сработать, но вы можете попробовать преобразовать свой отпечаток сертификата SHA-1 в base64 и вставить его в хэши ключей. Если это сработает, не стесняйтесь добавлять комментарий ниже, чтобы он мог помочь и другим людям.

Спасибо за чтение. Следуйте за мной, чтобы узнать больше о разработке Full-stack. Удачного кодирования, будьте в безопасности!

Больше контента на plainenglish.io