У меня есть мобильное приложение, встроенное в Ionic, и я использую Azure B2C для аутентификации клиентов.Требуется, чтобы я вышел из системы, чтобы получить вход в систему, а затем получил токен в ответ.Кажется, проблема в том, как вернуться к моему приложению при разборе токена.
Я использую либо window.open, либо InAppBrowser, например:
ref = window.open(url, '_self', 'location=no, toolbar=yes');
URL-адрес местоположения ответа:
localhost:8080/#access_token=<my_access_token>&token_type=Bearer&expires_in=3600&id_token=<my_id_token>
В симуляторе Xcode iPhone Safari сообщает: Safari не может открыть страницу, поскольку не может подключиться к серверу.
Допустим, у меня есть эта логика:
var standalone = window.navigator.standalone,
userAgent = window.navigator.userAgent.toLowerCase(),
safari = /safari/.test( userAgent ),
ios = /iphone|ipod|ipad/.test( userAgent );
if( ios ) {
if ( !standalone && safari ) {
//browser
} else if ( standalone && !safari ) {
//standalone
} else if ( !standalone && !safari ) {
//uiwebview
};
} else {
//not iOS
};
Я считаю, что мне нужно использовать window.open для браузеров?А в случае автономного / нативного я бы использовал InAppBrowser?
Я ищу хороший пример того, как управлять возвратом токена из браузера в веб-приложение или приложение для iOS и Android.
Я начал думать, что глубокие ссылки могут быть тем способом, которым я должен вернуться к своему нативному приложению.
FWIW: моя конфигурация на стороне Azure предлагает нативные опции с URI перенаправления любого из urn:ietf:wg:oauth:2.0:oob
или https://login.microsoftonline.com/tfp/oauth2/nativeclient
Спасибо