Как использовать браузер, чтобы получить авторизацию и вернуться к клиенту для родной iOS? - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть мобильное приложение, встроенное в 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

Спасибо

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