oak-general-business/lib/triggers/oauthApps.js

46 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const assert_1 = tslib_1.__importDefault(require("assert"));
const uuid_1 = require("oak-domain/lib/utils/uuid");
const crypto_1 = require("crypto");
const triggers = [
{
name: "创建oauth app时填充数据",
action: "create",
when: "before",
entity: "oauthApplication",
fn: async ({ operation }, context) => {
(0, assert_1.default)(operation.data && !Array.isArray(operation.data), "oauthApplication create data 必须存在且为单条记录");
const { data } = operation;
(0, assert_1.default)(data.systemId, "oauthApplication 创建时必须指定 systemId");
data.clientSecret = (0, crypto_1.randomUUID)();
// 默认不强制 PKCE
data.requirePKCE = data.requirePKCE ?? false;
return 0; // 没有引起数据库行修改
}
},
{
name: "更新apps的secret",
action: "resetSecret",
when: "before",
entity: "oauthApplication",
fn: async ({ operation }, context) => {
const { filter } = operation;
(0, assert_1.default)(filter && filter.id, "resetSecret 操作必须指定 filter.id");
const opRes = await context.operate("oauthApplication", {
id: await (0, uuid_1.generateNewIdAsync)(),
action: "update",
data: {
clientSecret: (0, crypto_1.randomUUID)(),
},
filter: {
id: filter.id,
}
}, {});
return opRes;
}
},
];
exports.default = triggers;