47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
"use strict";
|
||
Object.defineProperty(exports, "__esModule", { value: true });
|
||
const watchers = [
|
||
{
|
||
name: '定期刷新过期的oauthUser令牌',
|
||
entity: 'oauthUser',
|
||
filter() {
|
||
const now = Date.now();
|
||
const tenMinutes = 10 * 60 * 1000; // 10分钟
|
||
const oneDay = 24 * 60 * 60 * 1000; // 1天
|
||
return {
|
||
$and: [
|
||
{
|
||
refreshToken: {
|
||
$exists: true,
|
||
},
|
||
},
|
||
{
|
||
state: {
|
||
provider: {
|
||
refreshEndpoint: {
|
||
$exists: true,
|
||
}
|
||
}
|
||
}
|
||
},
|
||
// accessToken在10分钟内过期(包括已过期)
|
||
{
|
||
accessExpiresAt: {
|
||
$lt: now + tenMinutes,
|
||
},
|
||
},
|
||
// refreshToken还没过期(至少还有1天有效期)
|
||
{
|
||
refreshExpiresAt: {
|
||
$gt: now + oneDay,
|
||
},
|
||
},
|
||
],
|
||
};
|
||
},
|
||
action: 'refreshTokens',
|
||
actionData: {},
|
||
},
|
||
];
|
||
exports.default = watchers;
|