Мне нужна помощь, чтобы понять, как реализовать вход в систему по лазурному протоколу oauth на моем Chrome Webextension. Я нашел здесь очень полезное предложение на SO by @Rinor, как использовать user.identity с аутентификацией Azure, и я думаю, что я на полпути к успеху.
Используя приведенный ниже код, я получаю всплывающее окно входа в систему, и я могу легко войти в систему с именем пользователя и паролем. В ответ от Azure я получаю URL-адрес, содержащий токен, затем экстрагирую токен с помощью регулярного выражения и сохраняю его в crhorme.storage.
Проблема в том, что я застрял. Как мне теперь продолжить, чтобы получить данные пользователя (на самом деле мне нужен только адрес электронной почты или имя пользователя). Я не понимаю, нужен ли мне еще один вызов ajax для /oauth2/v2.0/token, чтобы получить дополнительный токен ... и если да, то как мне передать токен, который я получил от первоначального вызова, в / oauth2 / v2. 0 / авторизовать.
Кто-нибудь знает, как действовать? Любая помощь будет более чем приветствоваться ????
Заранее большое спасибо
chrome.identity.launchWebAuthFlow(
{
url: 'https://login.microsoftonline.com/' + tenant_id + '/oauth2/v2.0/authorize?' + // <= here tenant id or just common
'response_type=token' +
'&response_mode=fragment' +
'&prompt=login' +
'&client_id=' + client_id + // <= here client id from azure console
'&redirect_uri=' + redirectUrl +
'&scope=openid https://management.azure.com/user_impersonation profile',
interactive: true
},
function (responseWithToken) {
// the access token needs to be extracted from the response.
console.log(responseWithToken);
let token = responseWithToken.match(/(?<=access_token=).*(?=&token_type)/);
chrome.storage.local.set({ "azure_token": token }, function () {
console.log('Value is set');
});
}
);
// What next? :S