feat: 修复oauthUserAuth中的revoke逻辑,在撤销时还需要将unused的所用的code都标记为已使用
This commit is contained in:
parent
fda2b1be6b
commit
c28bca6385
|
|
@ -10,16 +10,34 @@ const triggers = [
|
|||
const { filter } = operation;
|
||||
assert(filter, 'No filter found in revoke operation');
|
||||
let res = 0;
|
||||
// 如果没有token,可以直接删除oauthUserAuthorization
|
||||
// 如果是unused并且code的usedAt是空的,则把code的usedAt全部设置为当前时间
|
||||
const opRes0 = await context.operate("oauthAuthorizationCode", {
|
||||
id: await generateNewIdAsync(),
|
||||
action: "update",
|
||||
data: {
|
||||
usedAt: new Date()
|
||||
},
|
||||
filter: {
|
||||
usedAt: {
|
||||
$exists: false
|
||||
},
|
||||
oauthUserAuthorization$code: {
|
||||
...filter,
|
||||
// 未被使用肯定就没有tokenId
|
||||
usageState: 'unused',
|
||||
}
|
||||
}
|
||||
}, {});
|
||||
res += opRes0.oauthAuthorizationCode?.update || 0;
|
||||
// 如果没有token,可以直接删除oauthUserAuthorization (可能是复用的之前的token, 也可能是未被使用的授权记录)
|
||||
const opRes = await context.operate("oauthUserAuthorization", {
|
||||
id: await generateNewIdAsync(),
|
||||
action: "remove",
|
||||
data: {},
|
||||
filter: {
|
||||
...filter,
|
||||
tokenId: {
|
||||
$exists: false
|
||||
}
|
||||
// 未被使用肯定就没有tokenId
|
||||
usageState: 'unused',
|
||||
}
|
||||
}, {});
|
||||
res += opRes.oauthApplication?.remove || 0;
|
||||
|
|
|
|||
|
|
@ -13,16 +13,34 @@ const triggers = [
|
|||
const { filter } = operation;
|
||||
(0, assert_1.default)(filter, 'No filter found in revoke operation');
|
||||
let res = 0;
|
||||
// 如果没有token,可以直接删除oauthUserAuthorization
|
||||
// 如果是unused并且code的usedAt是空的,则把code的usedAt全部设置为当前时间
|
||||
const opRes0 = await context.operate("oauthAuthorizationCode", {
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
action: "update",
|
||||
data: {
|
||||
usedAt: new Date()
|
||||
},
|
||||
filter: {
|
||||
usedAt: {
|
||||
$exists: false
|
||||
},
|
||||
oauthUserAuthorization$code: {
|
||||
...filter,
|
||||
// 未被使用肯定就没有tokenId
|
||||
usageState: 'unused',
|
||||
}
|
||||
}
|
||||
}, {});
|
||||
res += opRes0.oauthAuthorizationCode?.update || 0;
|
||||
// 如果没有token,可以直接删除oauthUserAuthorization (可能是复用的之前的token, 也可能是未被使用的授权记录)
|
||||
const opRes = await context.operate("oauthUserAuthorization", {
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
action: "remove",
|
||||
data: {},
|
||||
filter: {
|
||||
...filter,
|
||||
tokenId: {
|
||||
$exists: false
|
||||
}
|
||||
// 未被使用肯定就没有tokenId
|
||||
usageState: 'unused',
|
||||
}
|
||||
}, {});
|
||||
res += opRes.oauthApplication?.remove || 0;
|
||||
|
|
|
|||
|
|
@ -15,18 +15,39 @@ const triggers = [
|
|||
assert(filter, 'No filter found in revoke operation');
|
||||
|
||||
let res = 0;
|
||||
// 如果没有token,可以直接删除oauthUserAuthorization
|
||||
|
||||
// 如果是unused并且code的usedAt是空的,则把code的usedAt全部设置为当前时间
|
||||
const opRes0 = await context.operate("oauthAuthorizationCode", {
|
||||
id: await generateNewIdAsync(),
|
||||
action: "update",
|
||||
data: {
|
||||
usedAt: new Date()
|
||||
},
|
||||
filter: {
|
||||
usedAt: {
|
||||
$exists: false
|
||||
},
|
||||
oauthUserAuthorization$code: {
|
||||
...filter,
|
||||
// 未被使用肯定就没有tokenId
|
||||
usageState: 'unused',
|
||||
}
|
||||
}
|
||||
}, {});
|
||||
|
||||
res += opRes0.oauthAuthorizationCode?.update || 0;
|
||||
|
||||
// 如果没有token,可以直接删除oauthUserAuthorization (可能是复用的之前的token, 也可能是未被使用的授权记录)
|
||||
const opRes = await context.operate("oauthUserAuthorization", {
|
||||
id: await generateNewIdAsync(),
|
||||
action: "remove",
|
||||
data: {},
|
||||
filter: {
|
||||
...filter,
|
||||
tokenId: {
|
||||
$exists: false
|
||||
}
|
||||
// 未被使用肯定就没有tokenId
|
||||
usageState: 'unused',
|
||||
}
|
||||
}, {})
|
||||
}, {});
|
||||
|
||||
res += opRes.oauthApplication?.remove || 0;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue