У меня следующая ситуация:
Основной поток аутентификации происходит на сервере, затем клиентская сторона получает эти данные, так как с этого момента я хочу, чтобы клиент мог обновлять токен самостоятельно. Кажется, на клиенте есть все необходимые данные (access_token, refresh_token), но я не могу понять, как организовать запрос к https://login.microsoftonline.com/common/oauth2/v2.0/token маршруту.
Сначала я попытался получить ответ json:
$.ajax({
url: `https://login.microsoftonline.com/common/oauth2/token?grant_type=refresh_token&refresh_token=refresh_token&scope=openid%20profile%20offline%20access%20user.read%20mail.read%20contacts.read%20calendars.read&client_id=client&client_secret=secret`,
type: 'POST',
cache: false,
processData: false,
contentType: false,
dataType: 'json',
headers: {
'Host': 'https://login.microsoftonline.com',
'Content-Type': 'application/json'
},
success: function(data) {
...
},
error: function(xhr) {
...
}
});
После этого я понял, что эти данные можно получить только с помощью перенаправления, правильно? Если да, может кто-нибудь привести пример того, как это реализовать, похоже, что нужно создать iframe и как-то обработать авторизацию. Спасибо.
ОБНОВЛЕНИЕ:
поскольку Алина Ли указала в комментарии к своему ответу, решение есть прямо в официальном документе https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow