Я работаю над приложением Ionic 2, которое требует входа в систему, используя внешнюю ссылку. По соображениям безопасности я предпочел бы открыть ссылку в системном браузере. После того, как я открою ссылку и войщу в систему с именем пользователя &, в корпусе html будет возвращен токен. Есть ли способ передать этот токен моему приложению? Или есть ли другие решения для решения этой проблемы? Спасибо.ionic2 получить данные от системного браузера
ответ
Это чрезвычайно концептуально, но вы можете использовать плагин cordova inappbrowser, чтобы открыть браузер внутри приложения, прослушать событие выхода, чтобы дождаться, когда пользователь закроет браузер в приложении, и там введет скрипт для извлечения токен из html, что-то вроде:
inAppBrowserRef = undefined;
showLogin(url) {
var target = "_blank";
var options = "location=yes,hidden=yes";
this.inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
with (this.inAppBrowserRef) {
addEventListener('exit', this.exitCallBack);
}
}
exitCallBack(params) {
captureToken = "return token = [[jquery to retrieve the token]]";
this.inAppBrowserRef.executeScript({ code: captureToken}, this.executeScriptCallBack);
this.inAppBrowserRef.close();
this.inAppBrowserRef = undefined;
}
executeScriptCallBack(token) {
this.token=token;
}
извините за мой поздний повтор. пробовал много раз, когда я использую cordova InAppBrowser, у меня есть эталонная ошибка: не могу найти переменную: cordova. Я проверил свой index.html, я включил cordova.js в голову. благодаря! –
Во всяком случае, я использовал window.open (...) вместо cordova.InAppBrowser.open (...). Возможно, еще нужно установить inappbrowser заранее? Я не уверен в этом, но у меня установлен плагин inappbrowser, а window.open() может открыть страницу как в приложении, так и используя системный браузер. Кроме того, если вы хотите вернуться к приложению, используйте этот плагин: [EddyVerbruggen/Custom-URL-схема] (https://github.com/EddyVerbruggen/Custom-URL-scheme), и вы можете найти проходной [здесь] (http://mcgivery.com/using-custom-url-schemes-ionic-framework-app/). Но все же, спасибо @Manu за вашу помощь! –
- 1. StageWebView - Изменение системного браузера
- 2. Обновить браузер от системного вызова
- 3. Ionic2/Angular2 Данные события
- 4. совместимый видеоплеер для мобильного и системного браузера
- 5. получить URL-адрес от браузера
- 6. Ionic2: Как читать данные из Firebase Angularfire
- 7. данные Пасс в ionic2 меню
- 8. Как получить запрос от ionic2 приложения в PHP файл
- 9. Доступ к принтеру от ionic2
- 10. Получить авторизацию от браузера java от браузера браузера за запросом уже предоставленного разрешения
- 11. Получить данные о местоположении из мобильного браузера
- 12. Отладка системного вызова от FUSE
- 13. ionic2 Как получить входные данные на другую страницу
- 14. Не удается получить данные из массива с ionic2
- 15. Ionic2 создать PHP, чтобы получить данные для показа на странице
- 16. Использование системного брелка OSX от демона
- 17. Получить текущую позицию в ionic2
- 18. Как получить данные заголовка от ответа сервера в ионном 2
- 19. Как получить минуту системного времени от программы C
- 20. Как получить доступ к сеансу D-Bus от системного пользователя?
- 21. Как получить название месяца от системного календаря? используя mvc
- 22. Получение результата от API, http.post с Ionic2
- 23. Как получить свойства события `move` от браузера браузера атома?
- 24. Получить данные от RowCommand
- 25. Получить данные от пользователя
- 26. Получить данные от JsonResult
- 27. Получить данные от AFHTTPSessionManager
- 28. Получить данные от фабрики
- 29. получить данные от kendoWindow
- 30. Получить данные от UIImage
Почему бы просто не отправить учетные данные, используя POST-метод, по этой внешней ссылке с помощью ajax-вызова в приложении ionic 2? Затем вы получите токен в своем приложении? – John
Вы считаете, что перенаправление при успешном завершении входа в систему, передающее токен в строке запроса обратно в URL-адрес – teleaziz
@John Таким образом, я смогу перехватить все учетные данные пользователя. Я не хочу, чтобы у моих пользователей были такие заботы. Я полагаю, если открыть внешнюю ссылку, это не проблема безопасности. Исправьте меня, если я ошибаюсь ... –