Я использую Javascript (без углового), чтобы добавить AAD-аутентификацию в одностраничное веб-приложение. Исходный логин работает нормально, но через час истекает срок действия токена, и я не могу его обновить с помощью purchaseToken. Я пробовал называть метод полученияToken, когда я все еще подключился к моему идентификатору clientID, и он работает нормально, но после того, как токен истекает, я не могу его возобновить. Он терпит неудачу в том, что операция обновления токена завершилась неудачно из-за таймаута.Невозможно обновить токен с adal.js
После истечения срока действия маркера, я побежал это:
// ADALContext created from calling new AuthenticationContext
// passed in same clientID to acquire token as to create ADALContext
ADALContext.acquireToken(clientID, function (error, token) {console.log(error, token)})
Я включил oauth2AllowImplicitFlow в AAD.
"keyCredentials": [],
"knownClientApplications": [],
"logoutUrl": null,
"oauth2AllowImplicitFlow": true,
"oauth2AllowUrlPathMatching": true,
Не знаете, на каком этапе мне не хватает. Спасибо!
Редактировать: Сразу после истечения срока действия маркера, если я запустил purchaseToken (clientID, func), я получаю «Пользовательский логин». Тем не менее, если я вызываю getCachedUser, я возвращаю пользователя, после которого call приобретаетToken возвращает ошибку тайм-аута.
Этот токен доступа, который у вас есть, имеет продолжительность жизни 1 час. По истечении срока его действия, вызов приобретается, чтобы перейти к Azure AD, чтобы получить новый токен доступа, и это тот шаг, который он терпит неудачу. Трудно диагностировать конкретную проблему без дополнительной информации, вы можете получить трассировку скрипача и проверить ошибку, которую вы возвращаете из STS и отправить обратно. –
Вы имеете в виду заголовок ответа с URL-адреса запроса «https: //login.microsoftonline.com/microsoft.onmicrosoft.com/oauth2/authorize? Response_type = token & client_id = ....»? Если это так, я не получаю ошибку, насколько я могу судить. Тем не менее, если я дам неверный идентификатор клиента в процессе полученияToken, я получаю следующее: «Location: http: ///# error = invalid_resource ...». Может быть, я смотрю не туда? Я добавил несколько дополнительных комментариев к моему вопросу выше. Благодаря! –
Исправлена проблема с добавлением вызова в ADALContext.handleWindowCallback() :) –