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);
 | 
						|
    };
 | 
						|
 | 
						|
})();
 |