Я пытаюсь использовать сторонний OAuth2-провайдер для моего приложения IOS Ionic v1 для входа в систему.
После обновления до WKWebview вход в систему через браузер inapp больше не работает
В настоящее время используетсяASWebAuthSession от IOS и доступный для него плагин cordova cordova-plugin-ios-aswebauthenticationsession
var loginUrl = 'https://mywebsite/_oauth/login?app_name=mytestapp&redirect_url=https://mywebsite/_oauth/login/mobile-app/iosredirect.html';
window.plugins.ASWebAuthSession.start("mytestapp://", loginUrl,
function(msg){
console.log("Success ", msg);
}, function (err) {
console.log("Error " + msg);
});
При первом запуске приложения> Вход> открывается новое окно и загружается экран входа стороннего производителя> при вводе имени пользователя и пароля введите>успех> закрывает окно> я получаю access_token в обратном вызове успеха.Все хорошо в первый раз
Но во второй раз он проходит тот же поток, что и в первый раз.С ASWebAuthSession API разве он не должен запоминать куки и передаваться поставщику OAuth и возвращаться в приложение?Разве ASWebAuthSession не должен работать в режиме единого входа?
Я также попробовал устаревшую SFAuthenticationSession, но безуспешно.
Далее, чтобы доказать, что ASWebAuthSession делится данными из Safari в IOS, я попробовал это:
В браузере Safari зашли на Facebook, и в моем приложении запустил экземпляр ASWebAuthSession, как показано ниже, напрямую загрузил мои фейсбук-каналы без повторного входа в систему.
window.plugins.ASWebAuthSession.start("mytestapp://", 'http://www.facebook.com',
function(msg){
console.log("Success ", msg);
}, function (err) {
console.log("Error " + msg);
});
Почему мой OAuth не ведет себя одинаково.SSO хорошо работает в браузере
Любая помощь высоко ценится.Спасибо
Details and Versions:
@ionic/cli-utils : 1.19.1
ionic (Ionic CLI) : 3.19.1
cordova (Cordova CLI) : 7.1.0
Cordova Platforms : ios 5.0.1
Android SDK Tools : 26.1.1
ios-deploy : 1.9.2
ios-sim : 8.0.1
Node : v10.16.0
npm : 6.9.0
OS : macOS
Xcode : Xcode 10.2.1 Build version 10E1001