aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/oauth-model.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2019-03-19 14:23:17 +0100
committerChocobozzz <me@florianbigard.com>2019-03-19 14:30:43 +0100
commitd74d29ad9e35929491cf37223398d2535ab23de0 (patch)
tree2812c9acbc05be0603eb671f8e6bd81086cf84d5 /server/lib/oauth-model.ts
parent9f79ade627f0044606a9fbbe16ca0154661d12b9 (diff)
downloadPeerTube-d74d29ad9e35929491cf37223398d2535ab23de0.tar.gz
PeerTube-d74d29ad9e35929491cf37223398d2535ab23de0.tar.zst
PeerTube-d74d29ad9e35929491cf37223398d2535ab23de0.zip
Limit user tokens cache
Diffstat (limited to 'server/lib/oauth-model.ts')
-rw-r--r--server/lib/oauth-model.ts12
1 files changed, 9 insertions, 3 deletions
diff --git a/server/lib/oauth-model.ts b/server/lib/oauth-model.ts
index 2cd2ae97c..5b4a2bcf9 100644
--- a/server/lib/oauth-model.ts
+++ b/server/lib/oauth-model.ts
@@ -4,12 +4,12 @@ import { logger } from '../helpers/logger'
4import { UserModel } from '../models/account/user' 4import { UserModel } from '../models/account/user'
5import { OAuthClientModel } from '../models/oauth/oauth-client' 5import { OAuthClientModel } from '../models/oauth/oauth-client'
6import { OAuthTokenModel } from '../models/oauth/oauth-token' 6import { OAuthTokenModel } from '../models/oauth/oauth-token'
7import { CONFIG } from '../initializers/constants' 7import { CONFIG, CACHE } from '../initializers/constants'
8import { Transaction } from 'sequelize' 8import { Transaction } from 'sequelize'
9 9
10type TokenInfo = { accessToken: string, refreshToken: string, accessTokenExpiresAt: Date, refreshTokenExpiresAt: Date } 10type TokenInfo = { accessToken: string, refreshToken: string, accessTokenExpiresAt: Date, refreshTokenExpiresAt: Date }
11const accessTokenCache: { [ accessToken: string ]: OAuthTokenModel } = {} 11let accessTokenCache: { [ accessToken: string ]: OAuthTokenModel } = {}
12const userHavingToken: { [ userId: number ]: string } = {} 12let userHavingToken: { [ userId: number ]: string } = {}
13 13
14// --------------------------------------------------------------------------- 14// ---------------------------------------------------------------------------
15 15
@@ -43,6 +43,12 @@ function getAccessToken (bearerToken: string) {
43 return OAuthTokenModel.getByTokenAndPopulateUser(bearerToken) 43 return OAuthTokenModel.getByTokenAndPopulateUser(bearerToken)
44 .then(tokenModel => { 44 .then(tokenModel => {
45 if (tokenModel) { 45 if (tokenModel) {
46 // Reinit our cache
47 if (Object.keys(accessTokenCache).length > CACHE.USER_TOKENS.MAX_SIZE) {
48 accessTokenCache = {}
49 userHavingToken = {}
50 }
51
46 accessTokenCache[ bearerToken ] = tokenModel 52 accessTokenCache[ bearerToken ] = tokenModel
47 userHavingToken[ tokenModel.userId ] = tokenModel.accessToken 53 userHavingToken[ tokenModel.userId ] = tokenModel.accessToken
48 } 54 }