#ionic-framework #microsoft-graph-api #single-sign-on #azure-application-insights #ionic5
Вопрос:
Я пытаюсь реализовать вход в систему Microsoft с помощью ionic5.
Он переходит на страницу входа в систему, но после входа в систему появляется следующая ошибка.
Пожалуйста, помогите мне, что делать в этом случае.
login(){
const url = "https://login.microsoftonline.com/" this.tenant_id
"/oauth2/authorize?response_type=id_tokenamp;client_id=" this.client_id "amp;state=SomeStateamp;nonce=SomeNonce";
//here we create iab browser for login page.
const browser = this.iab.create(url, '_blank', {
location: 'no',
zoom: 'no',
hardwareback: 'no',
clearcache: 'yes'
});
browser.on("loadstart").subscribe((event) => {
console.log(event);
//this.splashScreen.show();
});
browser.on("loadstop").subscribe((event) => {
console.log(event);
this.splashScreen.hide();
browser.show();
});
browser.on("loaderror").subscribe((event) => {
console.log(event);
/*
var result = event.url.split("code=");
console.log("Authentication result", result);
window["AuthResult"] = result[1].split('amp;')[0];
localStorage.setItem('AuthCode', window["AuthResult"]);
browser.close();
*/
});
}
После изменения кода вызывается следующая ошибка.
Комментарии:
1. обнаружение изменения URL-адреса:
browser.on('loadstart').subscribe((res) => { console.log('loadStory', res); if (res.url == 'xyz.com') { browser.close(); } }, err => { console.error(err); });
2. Не могли бы вы еще раз взглянуть на мой вопрос? Я изменил код, как вы и сказали. Но я все равно получаю ошибку.
3. вы используете конденсатор? если да, пожалуйста, проверьте пемиссоны с открытым текстом,
Ответ №1:
Распечатайте URL-адрес в консоли, скопируйте и вставьте его в chrome. Если chrome сможет открыть URL-адрес. Проблема в том, что ваше приложение не может совершать http-вызовы. Шаг 1. попробуйте открыть URL-адрес в chrome. Если она откроется там. Приложение, которое должно быть. Шаг 2: может быть вместо загрузки вашего URL-адреса . Загрузить говорят https://www.google.com/ в приложении . Если это также не удастся, ваше приложение sure не сможет загрузить URL-адрес. Шаг 3. Разрешите приложению взаимодействовать с внешними http-вызовами. И ваш URL-адрес для входа начнет работать. Как я уже сказал, сначала сделайте Google.com работайте над приложением.
Комментарии:
2. Когда вход в систему будет завершен, будет возвращен указанный выше URL-адрес. Вы возвращаете URL-адрес, потому что вы не установили URL-адрес перенаправления? Я не знаю, является ли idtoken в URL-адресе обычным токеном, и я не знаю, где хранить информацию, если вход в систему будет успешным.
3. В любом случае, я думаю, что адрес перенаправления должен быть указан.
4. храните в локальном хранилище и используйте его, когда захотите