90 lines
2.8 KiB
JavaScript
90 lines
2.8 KiB
JavaScript
const AuthenticationContext = require('adal-angular');
|
|
|
|
AuthenticationContext.prototype._getItemSuper = AuthenticationContext.prototype._getItem;
|
|
AuthenticationContext.prototype._saveItemSuper = AuthenticationContext.prototype._saveItem;
|
|
AuthenticationContext.prototype.handleWindowCallbackSuper = AuthenticationContext.prototype.handleWindowCallback;
|
|
AuthenticationContext.prototype._renewTokenSuper = AuthenticationContext.prototype._renewToken;
|
|
AuthenticationContext.prototype.getRequestInfoSuper = AuthenticationContext.prototype.getRequestInfo;
|
|
AuthenticationContext.prototype._addAdalFrameSuper = AuthenticationContext.prototype._addAdalFrame;
|
|
|
|
AuthenticationContext.prototype._getItem = function (key) {
|
|
if (this.config.webPartId) {
|
|
key = this.config.webPartId + '_' + key;
|
|
}
|
|
|
|
return this._getItemSuper(key);
|
|
};
|
|
|
|
AuthenticationContext.prototype._saveItem = function (key, object) {
|
|
if (this.config.webPartId) {
|
|
key = this.config.webPartId + '_' + key;
|
|
}
|
|
|
|
return this._saveItemSuper(key, object);
|
|
};
|
|
|
|
AuthenticationContext.prototype.handleWindowCallback = function (hash) {
|
|
if (hash == null) {
|
|
hash = window.location.hash;
|
|
}
|
|
|
|
if (!this.isCallback(hash)) {
|
|
return;
|
|
}
|
|
|
|
var requestInfo = this.getRequestInfo(hash);
|
|
if (requestInfo.requestType === this.REQUEST_TYPE.LOGIN) {
|
|
return this.handleWindowCallbackSuper(hash);
|
|
}
|
|
|
|
var resource = this._getResourceFromState(requestInfo.stateResponse);
|
|
if (!resource || resource.length === 0) {
|
|
return;
|
|
}
|
|
|
|
if (this._getItem(this.CONSTANTS.STORAGE.RENEW_STATUS + resource) === this.CONSTANTS.TOKEN_RENEW_STATUS_IN_PROGRESS) {
|
|
return this.handleWindowCallbackSuper(hash);
|
|
}
|
|
}
|
|
|
|
AuthenticationContext.prototype._renewToken = function (resource, callback) {
|
|
this._renewTokenSuper(resource, callback);
|
|
var _renewStates = this._getItem('renewStates');
|
|
if (_renewStates) {
|
|
_renewStates = _renewStates.split(';');
|
|
}
|
|
else {
|
|
_renewStates = [];
|
|
}
|
|
_renewStates.push(this.config.state);
|
|
this._saveItem('renewStates', _renewStates);
|
|
}
|
|
|
|
AuthenticationContext.prototype.getRequestInfo = function (hash) {
|
|
var requestInfo = this.getRequestInfoSuper(hash);
|
|
var _renewStates = this._getItem('renewStates');
|
|
if (!_renewStates) {
|
|
return requestInfo;
|
|
}
|
|
|
|
_renewStates = _renewStates.split(';');
|
|
for (var i = 0; i < _renewStates.length; i++) {
|
|
if (_renewStates[i] === requestInfo.stateResponse) {
|
|
requestInfo.requestType = this.REQUEST_TYPE.RENEW_TOKEN;
|
|
requestInfo.stateMatch = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return requestInfo;
|
|
}
|
|
|
|
AuthenticationContext.prototype._addAdalFrame = function (iframeId) {
|
|
var adalFrame = this._addAdalFrameSuper(iframeId);
|
|
adalFrame.style.width = adalFrame.style.height = '106px';
|
|
return adalFrame;
|
|
}
|
|
|
|
window.AuthenticationContext = function () {
|
|
return undefined;
|
|
} |