@bxjs/base
Version:
bxjs base framework & api
136 lines • 11.2 kB
JavaScript
;
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var inversify_1 = require("inversify");
var _ = require("lodash");
var YAuth = /** @class */ (function () {
function YAuth() {
}
Object.defineProperty(YAuth.prototype, "id", {
// TODO 插件名称必须要到BXJS平台上统一注册确保全局唯一性
get: function () {
return 'YAuth';
},
enumerable: true,
configurable: true
});
// 登录逻辑实现(非常通用封装到父类规范中进行实现,业务应用中可以扩展系统的钩子函数实现保持代码风格统一实现)
YAuth.prototype.login = function (user_id, user_param) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!user_param) {
user_param = {};
}
xassert(!_.isEmpty(user_id) && _.isString(user_id) && _.isPlainObject(user_param));
return [4 /*yield*/, xsession.set('__user__', __assign({ id: user_id }, user_param))
// 在全局变量中缓存基本的登录信息优化查询速度
];
case 1:
_a.sent();
// 在全局变量中缓存基本的登录信息优化查询速度
if (!global['__user__']) {
global['__user__'] = {};
}
global['__user__'].id = user_id;
global['__user__'].param = __assign({ id: user_id }, user_param);
return [2 /*return*/];
}
});
});
};
// 登出逻辑实现
YAuth.prototype.logout = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, xsession.destroy()];
case 1:
_a.sent();
global['__user__'] = {};
return [2 /*return*/];
}
});
});
};
// 判断是否处于登录状态(框架调用,实现entries自动登录鉴权功能实现)
YAuth.prototype.getLoginStatus = function () {
return __awaiter(this, void 0, void 0, function () {
var user, _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!!_.isEmpty(global['__user__'])) return [3 /*break*/, 1];
_a = global['__user__'];
return [3 /*break*/, 3];
case 1: return [4 /*yield*/, xsession.get('__user__')];
case 2:
_a = _b.sent();
_b.label = 3;
case 3:
user = _a;
console.log('判断登录登出的状态:', JSON.stringify(user));
if (_.isEmpty(global['__user__']) && user) {
global['__user__'] = __assign({}, user);
}
return [2 /*return*/, user && user.id];
}
});
});
};
YAuth = __decorate([
inversify_1.injectable()
], YAuth);
return YAuth;
}());
exports.YAuth = YAuth;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUFxQztBQUNyQywwQkFBMkI7QUFHM0I7SUFBQTtJQXFDQSxDQUFDO0lBbkNHLHNCQUFJLHFCQUFFO1FBRE4sa0NBQWtDO2FBQ2xDO1lBQ0ksT0FBTyxPQUFPLENBQUE7UUFDbEIsQ0FBQzs7O09BQUE7SUFFRCx3REFBd0Q7SUFDbEQscUJBQUssR0FBWCxVQUFZLE9BQWUsRUFBRSxVQUFtQjs7Ozs7d0JBQzVDLElBQUksQ0FBQyxVQUFVLEVBQUU7NEJBQ2IsVUFBVSxHQUFHLEVBQUUsQ0FBQTt5QkFDbEI7d0JBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTt3QkFDbEYscUJBQU0sUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLGFBQUcsRUFBRSxFQUFFLE9BQU8sSUFBSyxVQUFVLEVBQUU7NEJBQzVELHdCQUF3QjswQkFEb0M7O3dCQUE1RCxTQUE0RCxDQUFBO3dCQUM1RCx3QkFBd0I7d0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7NEJBQ3JCLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUE7eUJBQzFCO3dCQUNELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFBO3dCQUMvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxjQUFJLEVBQUUsRUFBRSxPQUFPLElBQUssVUFBVSxDQUFDLENBQUE7Ozs7O0tBQzFEO0lBRUQsU0FBUztJQUNILHNCQUFNLEdBQVo7Ozs7NEJBQ0kscUJBQU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFBOzt3QkFBeEIsU0FBd0IsQ0FBQTt3QkFDeEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTs7Ozs7S0FDMUI7SUFFRCx1Q0FBdUM7SUFDakMsOEJBQWMsR0FBcEI7Ozs7Ozs2QkFDaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUE5Qix3QkFBOEI7d0JBQUcsS0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7OzRCQUM1RCxxQkFBTSxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFBOzt3QkFBOUIsS0FBQSxTQUE4QixDQUFBOzs7d0JBRDVCLElBQUksS0FDd0I7d0JBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTt3QkFDbEQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTs0QkFDdkMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxnQkFBTyxJQUFJLENBQUMsQ0FBQTt5QkFDakM7d0JBQ0Qsc0JBQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUE7Ozs7S0FDekI7SUFwQ1EsS0FBSztRQURqQixzQkFBVSxFQUFFO09BQ0EsS0FBSyxDQXFDakI7SUFBRCxZQUFDO0NBQUEsQUFyQ0QsSUFxQ0M7QUFyQ1ksc0JBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdGFibGV9IGZyb20gXCJpbnZlcnNpZnlcIjtcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJ1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgWUF1dGgge1xuICAgIC8vIFRPRE8g5o+S5Lu25ZCN56ew5b+F6aG76KaB5YiwQlhKU+W5s+WPsOS4iue7n+S4gOazqOWGjOehruS/neWFqOWxgOWUr+S4gOaAp1xuICAgIGdldCBpZCgpIHtcbiAgICAgICAgcmV0dXJuICdZQXV0aCdcbiAgICB9XG5cbiAgICAvLyDnmbvlvZXpgLvovpHlrp7njrDvvIjpnZ7luLjpgJrnlKjlsIHoo4XliLDniLbnsbvop4TojIPkuK3ov5vooYzlrp7njrDvvIzkuJrliqHlupTnlKjkuK3lj6/ku6XmianlsZXns7vnu5/nmoTpkqnlrZDlh73mlbDlrp7njrDkv53mjIHku6PnoIHpo47moLznu5/kuIDlrp7njrDvvIlcbiAgICBhc3luYyBsb2dpbih1c2VyX2lkOiBzdHJpbmcsIHVzZXJfcGFyYW0/OiBPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF1c2VyX3BhcmFtKSB7XG4gICAgICAgICAgICB1c2VyX3BhcmFtID0ge31cbiAgICAgICAgfVxuICAgICAgICB4YXNzZXJ0KCFfLmlzRW1wdHkodXNlcl9pZCkgJiYgXy5pc1N0cmluZyh1c2VyX2lkKSAmJiBfLmlzUGxhaW5PYmplY3QodXNlcl9wYXJhbSkpXG4gICAgICAgIGF3YWl0IHhzZXNzaW9uLnNldCgnX191c2VyX18nLCB7aWQ6IHVzZXJfaWQsIC4uLnVzZXJfcGFyYW19KVxuICAgICAgICAvLyDlnKjlhajlsYDlj5jph4/kuK3nvJPlrZjln7rmnKznmoTnmbvlvZXkv6Hmga/kvJjljJbmn6Xor6LpgJ/luqZcbiAgICAgICAgaWYgKCFnbG9iYWxbJ19fdXNlcl9fJ10pIHtcbiAgICAgICAgICAgIGdsb2JhbFsnX191c2VyX18nXSA9IHt9XG4gICAgICAgIH1cbiAgICAgICAgZ2xvYmFsWydfX3VzZXJfXyddLmlkID0gdXNlcl9pZFxuICAgICAgICBnbG9iYWxbJ19fdXNlcl9fJ10ucGFyYW0gPSB7aWQ6IHVzZXJfaWQsIC4uLnVzZXJfcGFyYW19XG4gICAgfVxuXG4gICAgLy8g55m75Ye66YC76L6R5a6e546wXG4gICAgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB4c2Vzc2lvbi5kZXN0cm95KClcbiAgICAgICAgZ2xvYmFsWydfX3VzZXJfXyddID0ge31cbiAgICB9XG5cbiAgICAvLyDliKTmlq3mmK/lkKblpITkuo7nmbvlvZXnirbmgIEo5qGG5p626LCD55So77yM5a6e546wZW50cmllc+iHquWKqOeZu+W9lemJtOadg+WKn+iDveWunueOsClcbiAgICBhc3luYyBnZXRMb2dpblN0YXR1cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgdXNlciA9ICFfLmlzRW1wdHkoZ2xvYmFsWydfX3VzZXJfXyddKSA/IGdsb2JhbFsnX191c2VyX18nXSA6XG4gICAgICAgICAgICBhd2FpdCB4c2Vzc2lvbi5nZXQoJ19fdXNlcl9fJylcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfliKTmlq3nmbvlvZXnmbvlh7rnmoTnirbmgIHvvJonLEpTT04uc3RyaW5naWZ5KHVzZXIpKVxuICAgICAgICBpZiAoXy5pc0VtcHR5KGdsb2JhbFsnX191c2VyX18nXSkgJiYgdXNlcikge1xuICAgICAgICAgICAgZ2xvYmFsWydfX3VzZXJfXyddID0gey4uLnVzZXJ9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXIgJiYgdXNlci5pZFxuICAgIH1cbn1cbiJdfQ==