@choerodon/master
Version:
A package of Master for Choerodon platform.
64 lines (54 loc) • 1.91 kB
JavaScript
import { ACCESS_TOKEN, AUTH_HOST, AUTH_URL, NO_NEED_HISTORYPATH } from "./constants";
import { getCookieToken, removeAccessToken } from "./accessToken";
export function authorize() {
window.top.location = "".concat(AUTH_URL);
}
export function logout() {
var token = getCookieToken();
var logoutUrl = "".concat(AUTH_HOST, "/logout");
if (token) {
logoutUrl += "?".concat(ACCESS_TOKEN, "=").concat(getCookieToken());
}
removeAccessToken();
localStorage.clear();
var historyPath = sessionStorage.getItem('historyPath');
sessionStorage.clear();
sessionStorage.setItem('historyPath', historyPath);
window.location = logoutUrl;
}
export function authorizeC7n() {
// 为了把这个hash传到oauth里要把#换成%23
var historyPath = sessionStorage.getItem('historyPath');
if (historyPath && NO_NEED_HISTORYPATH.some(function (item) {
return historyPath.includes(item);
})) {
historyPath = '/';
sessionStorage.setItem('historyPath', '/');
}
var uri = "".concat(window.location.origin, "/#").concat(historyPath || '/');
if (uri.indexOf('?') > 0) {
uri += '&redirectFlag';
} else {
uri += '?redirectFlag';
}
var redirect_uri = escape(uri);
window.localStorage.removeItem('lastClosedId'); // 这里是为了告诉oauth我要重定向的uri是什么,必须和client中对应,跳转到非client的页面会报错。
window.location = "".concat(AUTH_URL, "&redirect_uri=").concat(redirect_uri);
}
export function authorizeUrl() {
window.location = "".concat(window.location.origin, "/#/unauthorized");
}
/**
* 登出
*/
export function logoutC7n() {
var token = getCookieToken();
var logoutUrl = "".concat(AUTH_HOST, "/logout");
if (token) {
logoutUrl += "?".concat(ACCESS_TOKEN, "=").concat(getCookieToken());
}
removeAccessToken();
localStorage.clear();
sessionStorage.clear();
window.location = logoutUrl;
}