У меня в настоящее время проблема с одним из моих приложений.Обновить Office365 Авторизованный токен с Javascript
Проблема заключается в том, что пользователь может держать страницу открытой в течение длительного периода времени, прежде чем вводить какие-либо данные, поэтому иногда, когда они вводят данные и нажимают кнопку отправки, они перенаправляются на o365 для аутентификации и, следовательно, теряют введенные данные.
У меня есть стандартная аутентификация, работающая для приложения. Однако я верю, что для этого мне нужно будет обновить токен в javascript при нажатии кнопки отправки и отправить этот токен методу api для доступа.
Возможно ли это, и кто-нибудь знает, как это сделать?
Это приложение MVC ASP.NET с использованием Owin O365 с Microsoft Azure AD.
Я не уверен, какая информация или фрагменты кода будут актуальны здесь, поэтому, если есть что-нибудь, что я могу предоставить, обратитесь к нам.
Я нашел несколько примеров получения токенов и т. Д. С угловыми, однако это не СПА и не использует угловые.
Большое спасибо заранее.
UPDATE
Я попытался получить маркер, используя Адал JS, используя следующий код, но он не кажется, признает AuthorizationContext (конфигурация) вызов:
<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.0/js/adal.min.js"></script>
$('#btnSubmit').on('click', function (e) {
e.preventDefault();
CheckUserAuthorised();
});
function CheckUserAuthorised() {
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: '##################',
clientId: '###################',
postLogoutRedirectUri: window.location.origin,
cacheLocation: 'localStorage'
};
var authContext = new AuthorizationContext(config); //THIS LINE FAILS
var user = authContext.getCachedUser();
if (!user) {
alert("User Not Authorised");
authContext.login();
}
else {
alert('User Authorized');
}
}
Это дает следующее сообщение об ошибке в консоли:
'AuthorizationContext' is undefined
UPDATE
У меня нет однозначной ошибки. Это было потому, что я звонил AuthorizationContext
, а не AuthenticationContext
. Ошибка школьника. Однако теперь, когда я проверяю свойство пользователя контекста, он всегда равен нулю. И я не знаю, как это происходит, поскольку контекст инициализируется при загрузке страницы.
В коде есть опечатка. Попробуйте изменить AuthorisationContext на AuthorizationContext. – n0m4d
хорошее место и спасибо за это, но я до сих пор получаю сообщение об ошибке: 'AuthorizationContext undefined' – DaRoGa
Где вы взяли этот образец кода? Другое дело: вместо передачи в AuthorizationContext config, передайте это как window.config, потому что config был определен в объекте window. – n0m4d