Я гуглю уже несколько дней подряд и не могу найти ничего похожего на проблему в руке.Пользователи нашего веб-сайта должны повторно войти в систему после 1 часа бездействия.Компания потребовала обновить токен доступа в режиме без вывода сообщений, чтобы пользователи не запрашивали вход несколько раз в день.
Как этого можно достичь?
Наша среда:
AZURE AD- бесплатная версия
Веб-сайт - angular5 и adal-angular5
Это услуга (без ненужного шума)
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Adal5Service, Adal5HTTPService } from 'adal-angular5';
import { adal } from 'adal-angular';
const config: adal.Config = {
tenant: environment.tenant,
clientId: environment.clientId,
endpoints: environment.endpoints
}
@Injectable()
export class AuthService {
constructor(private adalService: Adal5Service,
private httpAdal: Adal5HTTPService,
private http: Http) {
this.adalService.init(config);
this.adalService.handleWindowCallback();
if (!this.adalService.userInfo.authenticated) {
this.adalService.login();
}
}
sendRequest(url: string): Observable<any> {
const resource = this.adalService.GetResourceForEndpoint(url);
let authenticatedCall: Observable<any>;
if (resource) {
if (this.adalService.userInfo.authenticated) {
authenticatedCall =
this.adalService.acquireToken(resource).flatMap(token => {
const headers = new Headers();
headers.append('Authorization', 'Bearer ' + token);
return this.http.request(url, headers)
});
} else {
this.adalService.login();
}
}
return authenticatedCall;
}
}