Просмотр исходного кода

Merge pull request #12545 from overleaf/em-oauth-tokens-ttl

Delete expired OAuth tokens and authorization codes

GitOrigin-RevId: 2743ed12a11101a383c46de93deabc5cdeeddc5b
Eric Mc Sween 3 лет назад
Родитель
Сommit
fb1f61434a

+ 1 - 0
services/web/app/src/models/OauthAccessToken.js

@@ -12,6 +12,7 @@ const OauthAccessTokenSchema = new Schema(
     refreshTokenExpiresAt: Date,
     scope: String,
     user_id: { type: ObjectId, ref: 'User' },
+    expiresAt: Date,
   },
   {
     collection: 'oauthAccessTokens',

+ 35 - 0
services/web/migrations/20230406125632_oauth_tokens_ttl.js

@@ -0,0 +1,35 @@
+const Helpers = require('./lib/helpers')
+
+exports.tags = ['server-ce', 'server-pro', 'saas']
+
+const ACCESS_TOKENS_INDEX = {
+  name: 'expiresAt_1',
+  key: { expiresAt: 1 },
+  partialFilterExpression: { expiresAt: { $exists: true } },
+  expireAfterSeconds: 0,
+}
+
+const AUTHORIZATION_CODES_INDEX = {
+  name: 'expiresAt_1',
+  key: { expiresAt: 1 },
+  partialFilterExpression: { expiresAt: { $exists: true } },
+  expireAfterSeconds: 0,
+}
+
+exports.migrate = async ({ db }) => {
+  await Helpers.addIndexesToCollection(db.oauthAccessTokens, [
+    ACCESS_TOKENS_INDEX,
+  ])
+  await Helpers.addIndexesToCollection(db.oauthAuthorizationCodes, [
+    AUTHORIZATION_CODES_INDEX,
+  ])
+}
+
+exports.rollback = async ({ db }) => {
+  await Helpers.dropIndexesFromCollection(db.oauthAccessTokens, [
+    ACCESS_TOKENS_INDEX,
+  ])
+  await Helpers.dropIndexesFromCollection(db.oauthAuthorizationCodes, [
+    AUTHORIZATION_CODES_INDEX,
+  ])
+}