118 lines
3.6 KiB
JavaScript
118 lines
3.6 KiB
JavaScript
var abp = abp || {};
|
|
(function () {
|
|
|
|
/* Application paths *****************************************/
|
|
|
|
// Current application root path (including virtual directory if exists).
|
|
abp.appPath = abp.appPath || '/';
|
|
|
|
/* AUTHORIZATION **********************************************/
|
|
// Implements Authorization API that simplifies usage of authorization scripts generated by Abp.
|
|
|
|
abp.auth = abp.auth || {};
|
|
|
|
abp.auth.tokenCookieName = 'Abp.AuthToken';
|
|
abp.auth.tokenHeaderName = 'Authorization';
|
|
|
|
abp.auth.setToken = function (authToken, expireDate) {
|
|
abp.utils.setCookieValue(abp.auth.tokenCookieName, authToken, expireDate, abp.appPath);
|
|
};
|
|
|
|
abp.auth.getToken = function () {
|
|
return abp.utils.getCookieValue(abp.auth.tokenCookieName);
|
|
}
|
|
|
|
abp.auth.clearToken = function () {
|
|
abp.auth.setToken();
|
|
}
|
|
|
|
/* UTILS ***************************************************/
|
|
|
|
abp.utils = abp.utils || {};
|
|
|
|
/**
|
|
* Sets a cookie value for given key.
|
|
* This is a simple implementation created to be used by ABP.
|
|
* Please use a complete cookie library if you need.
|
|
* @param {string} key
|
|
* @param {string} value
|
|
* @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session.
|
|
* @param {string} path (optional)
|
|
*/
|
|
abp.utils.setCookieValue = function (key, value, expireDate, path) {
|
|
var cookieValue = encodeURIComponent(key) + '=';
|
|
|
|
if (value) {
|
|
cookieValue = cookieValue + encodeURIComponent(value);
|
|
}
|
|
|
|
if (expireDate) {
|
|
cookieValue = cookieValue + "; expires=" + expireDate.toUTCString();
|
|
}
|
|
|
|
if (path) {
|
|
cookieValue = cookieValue + "; path=" + path;
|
|
}
|
|
|
|
document.cookie = cookieValue;
|
|
};
|
|
|
|
/**
|
|
* Gets a cookie with given key.
|
|
* This is a simple implementation created to be used by ABP.
|
|
* Please use a complete cookie library if you need.
|
|
* @param {string} key
|
|
* @returns {string} Cookie value or null
|
|
*/
|
|
abp.utils.getCookieValue = function (key) {
|
|
var equalities = document.cookie.split('; ');
|
|
for (var i = 0; i < equalities.length; i++) {
|
|
if (!equalities[i]) {
|
|
continue;
|
|
}
|
|
|
|
var splitted = equalities[i].split('=');
|
|
if (splitted.length != 2) {
|
|
continue;
|
|
}
|
|
|
|
if (decodeURIComponent(splitted[0]) === key) {
|
|
return decodeURIComponent(splitted[1] || '');
|
|
}
|
|
}
|
|
|
|
return null;
|
|
};
|
|
|
|
/**
|
|
* Deletes cookie for given key.
|
|
* This is a simple implementation created to be used by ABP.
|
|
* Please use a complete cookie library if you need.
|
|
* @param {string} key
|
|
* @param {string} path (optional)
|
|
*/
|
|
abp.utils.deleteCookie = function (key, path) {
|
|
var cookieValue = encodeURIComponent(key) + '=';
|
|
|
|
cookieValue = cookieValue + "; expires=" + (new Date(new Date().getTime() - 86400000)).toUTCString();
|
|
|
|
if (path) {
|
|
cookieValue = cookieValue + "; path=" + path;
|
|
}
|
|
|
|
document.cookie = cookieValue;
|
|
}
|
|
|
|
/* SECURITY ***************************************/
|
|
abp.security = abp.security || {};
|
|
abp.security.antiForgery = abp.security.antiForgery || {};
|
|
|
|
abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN';
|
|
abp.security.antiForgery.tokenHeaderName = 'X-XSRF-TOKEN';
|
|
|
|
abp.security.antiForgery.getToken = function () {
|
|
return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName);
|
|
};
|
|
|
|
})();
|