Я пытаюсь настроить ручной поток для входа в 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 сработал обработчик завершения.
Вопрос: Как мне перенаправить обратно в обработчик завершения при успешном входе в систему?