Как я получаю React-native-inappbrowser-reborn, чтобы вызвать успех при успешном входе в Facebook - PullRequest
1 голос
/ 18 мая 2019

Я пытаюсь настроить ручной поток для входа в Facebook, в соответствии с документами по адресу: https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/

У меня тестовое приложение Facebook работает, как и ожидалось, то есть я могу войти в систему через окно браузера. URL, который я использую:

https://facebook.com/v3.3/dialog/oauth?client_id=<app_id>&display=popup&response_type=token&redirect_uri=https://www.facebook.com/connect/login_success.html


Теперь в моем приложении React-Native я использую react-native-inappbrowser-reborn для представления SFAuthenticationSession на iOS. Согласно их документам (на https://www.npmjs.com/package/react-native-inappbrowser-reborn), я делаю следующее:

const redirectUri = "https://www.facebook.com/connect/login_success.html"
const url = "https://facebook.com/v3.3/dialog/oauth?client_id="+appId+"&display=popup&response_type=token&redirect_uri=https://www.facebook.com/connect/login_success.html"

InAppBrowser.isAvailable()
.then(() => {
InAppBrowser.openAuth(url, redirectUri, {
    // iOS Properties
    dismissButtonStyle: 'cancel',
    // Android Properties
    showTitle: false,
    enableUrlBarHiding: true,
    enableDefaultShare: true,
})
.then((response) => {
    // Only gets to this point if user explicitly cancels.
    // So this does not trigger upon successful login.
})
// catch handlers follow


Используя вышеизложенное, мое приложение правильно открывает браузер в приложении, и я могу нормально входить в систему, используя тестового пользователя для моего тестового приложения. После успешного входа в систему я не перенаправлен обратно к обработчику завершения .then. Он просто остается в представлении браузера в приложении, и я вижу то же сообщение от Facebook, которое я вижу при входе в систему с помощью веб-браузера. Там написано что-то вроде «Успех. Пожалуйста, относитесь к URL так же, как к паролю», или что-то в этом роде.

Возможно, я что-то здесь упускаю, но я думал, что цель передачи redirectUri в качестве аргумента openAuth состояла в том, чтобы при перенаправлении на этот URI сработал обработчик завершения.

Вопрос: Как мне перенаправить обратно в обработчик завершения при успешном входе в систему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...