@kedaruma/revlm-server 1.0.20 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/server.d.ts +1 -5
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +124 -172
- package/dist/server.js.map +1 -1
- package/dist/start.js +1 -5
- package/dist/start.js.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ Set the following environment variables or values in a `.env` file before starti
|
|
|
18
18
|
- `USERS_DB_NAME` / `usersDbName`
|
|
19
19
|
- `USERS_COLLECTION_NAME` / `usersCollectionName`
|
|
20
20
|
- `JWT_SECRET` / `jwtSecret`
|
|
21
|
+
- `REFRESH_SECRET_SIGNING_KEY` / `refreshSecretSigningKey` (HMAC key for 5-minute refresh secret cookie rotation)
|
|
21
22
|
- Optional provisional auth settings (`provisionalLoginEnabled`, `provisionalAuthId`, etc.)
|
|
22
23
|
|
|
23
24
|
## Scripts
|
package/dist/server.d.ts
CHANGED
|
@@ -14,11 +14,7 @@ export interface ServerConfig {
|
|
|
14
14
|
jwtExpiresIn?: string;
|
|
15
15
|
refreshWindowSec?: number;
|
|
16
16
|
port: number;
|
|
17
|
-
|
|
18
|
-
sigv4AccessKey?: string | undefined;
|
|
19
|
-
sigv4Region?: string | undefined;
|
|
20
|
-
sigv4Service?: string | undefined;
|
|
21
|
-
sigv4Required?: boolean;
|
|
17
|
+
refreshSecretSigningKey: string;
|
|
22
18
|
}
|
|
23
19
|
export declare function registerUserRaw(user: User, password: string): Promise<User>;
|
|
24
20
|
export declare function deleteUserRaw(_id: any, authId?: string): Promise<number>;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;AAS9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAaxB,eAAO,IAAI,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;AAG/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,EAAE,MAAM,CAAC;CACjC;AA6OD,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAiBjE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,mBAY5D;AAUD,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAsP5E;AAED,wBAAsB,UAAU,kBAU/B"}
|
package/dist/server.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.client = void 0;
|
|
4
7
|
exports.registerUserRaw = registerUserRaw;
|
|
@@ -6,8 +9,7 @@ exports.deleteUserRaw = deleteUserRaw;
|
|
|
6
9
|
exports.startServer = startServer;
|
|
7
10
|
exports.stopServer = stopServer;
|
|
8
11
|
const auth_token_1 = require("@kedaruma/revlm-shared/auth-token");
|
|
9
|
-
const
|
|
10
|
-
const sha256_js_1 = require("@aws-crypto/sha256-js");
|
|
12
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
11
13
|
const express = require('express');
|
|
12
14
|
const cors = require('cors');
|
|
13
15
|
const mongodb_1 = require("mongodb");
|
|
@@ -28,9 +30,6 @@ const serverConfigDefaults = {
|
|
|
28
30
|
provisionalLoginEnabled: false,
|
|
29
31
|
jwtExpiresIn: '1h',
|
|
30
32
|
refreshWindowSec: 300,
|
|
31
|
-
sigv4Required: true,
|
|
32
|
-
sigv4Region: 'revlm',
|
|
33
|
-
sigv4Service: 'revlm',
|
|
34
33
|
};
|
|
35
34
|
let serverConfig;
|
|
36
35
|
let plpaServer;
|
|
@@ -44,13 +43,8 @@ let PROVISIONAL_AUTH_DOMAIN;
|
|
|
44
43
|
let USERS_DB_NAME;
|
|
45
44
|
let USERS_COLLECTION;
|
|
46
45
|
let MONGO_URI;
|
|
46
|
+
let REFRESH_SECRET_SIGNING_KEY;
|
|
47
47
|
let server;
|
|
48
|
-
let SIGV4_SECRET_KEY;
|
|
49
|
-
let SIGV4_ACCESS_KEY;
|
|
50
|
-
let SIGV4_REGION;
|
|
51
|
-
let SIGV4_SERVICE;
|
|
52
|
-
let SIGV4_REQUIRED;
|
|
53
|
-
let sigv4Verifier;
|
|
54
48
|
// Helper to ensure server started
|
|
55
49
|
function ensureStarted() {
|
|
56
50
|
if (!serverConfig)
|
|
@@ -74,6 +68,57 @@ function sendResponse(req, res, obj, status = 200) {
|
|
|
74
68
|
res.json(obj);
|
|
75
69
|
}
|
|
76
70
|
}
|
|
71
|
+
const REFRESH_SECRET_TTL_SEC = 300;
|
|
72
|
+
const REFRESH_COOKIE_NAME = 'revlm_refresh';
|
|
73
|
+
function parseCookies(req) {
|
|
74
|
+
const header = req.headers?.cookie;
|
|
75
|
+
if (!header)
|
|
76
|
+
return {};
|
|
77
|
+
return header.split(';').map((c) => c.trim()).filter(Boolean).reduce((acc, part) => {
|
|
78
|
+
const eq = part.indexOf('=');
|
|
79
|
+
if (eq === -1)
|
|
80
|
+
return acc;
|
|
81
|
+
const k = decodeURIComponent(part.slice(0, eq));
|
|
82
|
+
const v = decodeURIComponent(part.slice(eq + 1));
|
|
83
|
+
acc[k] = v;
|
|
84
|
+
return acc;
|
|
85
|
+
}, {});
|
|
86
|
+
}
|
|
87
|
+
async function issueRefreshSecret(userId) {
|
|
88
|
+
const oid = toObjectId(userId);
|
|
89
|
+
if (!oid)
|
|
90
|
+
throw new Error('invalid_user_id');
|
|
91
|
+
const issuedAt = Math.floor(Date.now() / 1000);
|
|
92
|
+
const secret = crypto_1.default.randomBytes(32).toString('base64url');
|
|
93
|
+
const signed = jwt.sign({ sub: String(userId), rs: secret, iat: issuedAt }, REFRESH_SECRET_SIGNING_KEY, { algorithm: 'HS256' });
|
|
94
|
+
const refreshSecretHash = await bcrypt.hash(secret, 10);
|
|
95
|
+
const userCol = getClient().db(USERS_DB_NAME).collection(USERS_COLLECTION);
|
|
96
|
+
await userCol.updateOne({ _id: oid }, { $set: { refreshSecretHash, refreshSecretIssuedAt: issuedAt } });
|
|
97
|
+
return { signed, issuedAt };
|
|
98
|
+
}
|
|
99
|
+
function setRefreshCookie(res, signed) {
|
|
100
|
+
// HttpOnly Secure SameSite=Lax cookie scoped to /refresh-token
|
|
101
|
+
const secure = process.env.NODE_ENV !== 'test';
|
|
102
|
+
res.cookie(REFRESH_COOKIE_NAME, signed, {
|
|
103
|
+
httpOnly: true,
|
|
104
|
+
secure,
|
|
105
|
+
sameSite: 'lax',
|
|
106
|
+
path: '/refresh-token',
|
|
107
|
+
maxAge: REFRESH_SECRET_TTL_SEC * 1000,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function ensureRefreshSecretValid(user, payload) {
|
|
111
|
+
const now = Math.floor(Date.now() / 1000);
|
|
112
|
+
if (!payload || typeof payload !== 'object' || !payload.iat || !payload.rs || !payload.sub) {
|
|
113
|
+
throw new Error('refresh_secret_invalid');
|
|
114
|
+
}
|
|
115
|
+
if (now - payload.iat > REFRESH_SECRET_TTL_SEC) {
|
|
116
|
+
throw new Error('refresh_secret_expired');
|
|
117
|
+
}
|
|
118
|
+
if (!user || !user.refreshSecretHash || user.refreshSecretIssuedAt !== payload.iat) {
|
|
119
|
+
throw new Error('refresh_secret_mismatch');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
77
122
|
function verifyToken(req, res, next) {
|
|
78
123
|
const customHeader = req.headers['x-revlm-jwt'];
|
|
79
124
|
const authHeader = req.headers['authorization'];
|
|
@@ -103,97 +148,6 @@ function verifyToken(req, res, next) {
|
|
|
103
148
|
}
|
|
104
149
|
next();
|
|
105
150
|
}
|
|
106
|
-
async function verifySigV4(req, res, next) {
|
|
107
|
-
if (!SIGV4_REQUIRED)
|
|
108
|
-
return next();
|
|
109
|
-
if (!sigv4Verifier) {
|
|
110
|
-
return sendResponse(req, res, { ok: false, error: 'SigV4 verifier not configured' }, 500);
|
|
111
|
-
}
|
|
112
|
-
const authHeader = req.headers['authorization'];
|
|
113
|
-
if (!authHeader || (Array.isArray(authHeader) ? authHeader.length === 0 : !authHeader)) {
|
|
114
|
-
return sendResponse(req, res, { ok: false, error: 'Missing Authorization header' }, 401);
|
|
115
|
-
}
|
|
116
|
-
const incomingAuth = Array.isArray(authHeader) ? authHeader[0] : authHeader;
|
|
117
|
-
// Extract SignedHeaders list from Authorization to reconstruct canonical request
|
|
118
|
-
// Authorization から SignedHeaders を取り出し、正規化リクエストを再構成する
|
|
119
|
-
const signedHeaderPart = incomingAuth.split(',').find((p) => p.trim().startsWith('SignedHeaders='));
|
|
120
|
-
if (!signedHeaderPart) {
|
|
121
|
-
return sendResponse(req, res, { ok: false, error: 'Invalid SigV4 Authorization header' }, 403);
|
|
122
|
-
}
|
|
123
|
-
const signedHeaderList = signedHeaderPart.split('=')[1]?.split(';').filter(Boolean) || [];
|
|
124
|
-
const rawBuf = req._rawBody;
|
|
125
|
-
const rawBody = rawBuf ? rawBuf.toString() : '';
|
|
126
|
-
const xfProto = req.headers['x-forwarded-proto'];
|
|
127
|
-
const xfPort = req.headers['x-forwarded-port'];
|
|
128
|
-
const xfHost = req.headers['x-forwarded-host'];
|
|
129
|
-
const hostHeaderRaw = req.headers['host'] ? (Array.isArray(req.headers['host']) ? req.headers['host'][0] : req.headers['host']) : '';
|
|
130
|
-
const hostHeaderBase = xfHost ? (Array.isArray(xfHost) ? xfHost[0] : xfHost) : hostHeaderRaw;
|
|
131
|
-
const hostParts = hostHeaderBase ? hostHeaderBase.split(':') : [''];
|
|
132
|
-
const hostOnly = hostParts[0] || '';
|
|
133
|
-
const portFromHost = hostParts.length > 1 ? Number(hostParts[1]) : undefined;
|
|
134
|
-
const headers = {};
|
|
135
|
-
signedHeaderList.forEach((h) => {
|
|
136
|
-
const lower = h.toLowerCase();
|
|
137
|
-
const v = req.headers[lower];
|
|
138
|
-
if (v !== undefined) {
|
|
139
|
-
headers[lower] = Array.isArray(v) ? v.join(',') : String(v);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
const protoFromHeader = xfProto ? (Array.isArray(xfProto) ? xfProto[0] : xfProto) : undefined;
|
|
143
|
-
const protocol = protoFromHeader
|
|
144
|
-
? `${protoFromHeader.replace(/:$/, '')}:`
|
|
145
|
-
: (req.protocol ? `${req.protocol}:` : 'http:');
|
|
146
|
-
const portCandidate = xfPort ? Number(Array.isArray(xfPort) ? xfPort[0] : xfPort) : portFromHost;
|
|
147
|
-
const effectivePort = portCandidate && !Number.isNaN(portCandidate) ? portCandidate : undefined;
|
|
148
|
-
// Use incoming host header as-is; do not rewrite with port to avoid SigV4 mismatch behind proxies
|
|
149
|
-
const effectiveHost = hostHeaderBase;
|
|
150
|
-
headers['host'] = effectiveHost;
|
|
151
|
-
const pathWithQuery = req.originalUrl || req.url;
|
|
152
|
-
// Debug log for SigV4 mismatch investigation (can be noisy; remove or guard in production)
|
|
153
|
-
console.log('SigV4 debug', {
|
|
154
|
-
incomingAuth,
|
|
155
|
-
host: req.headers['host'],
|
|
156
|
-
xfHost,
|
|
157
|
-
xfProto,
|
|
158
|
-
xfPort,
|
|
159
|
-
path: pathWithQuery,
|
|
160
|
-
effectiveHost,
|
|
161
|
-
protocol,
|
|
162
|
-
effectivePort,
|
|
163
|
-
});
|
|
164
|
-
try {
|
|
165
|
-
const sha = new sha256_js_1.Sha256();
|
|
166
|
-
sha.update(rawBody);
|
|
167
|
-
const payloadHash = Buffer.from(await sha.digest()).toString('hex');
|
|
168
|
-
const reqToSign = {
|
|
169
|
-
method: req.method,
|
|
170
|
-
protocol,
|
|
171
|
-
path: pathWithQuery,
|
|
172
|
-
headers,
|
|
173
|
-
hostname: hostOnly || req.hostname,
|
|
174
|
-
body: rawBody,
|
|
175
|
-
payloadHash,
|
|
176
|
-
};
|
|
177
|
-
if (effectivePort) {
|
|
178
|
-
reqToSign.port = effectivePort;
|
|
179
|
-
}
|
|
180
|
-
const signed = await sigv4Verifier.sign(reqToSign);
|
|
181
|
-
const expectedAuth = signed.headers?.authorization;
|
|
182
|
-
if (expectedAuth !== incomingAuth) {
|
|
183
|
-
console.log('SigV4 mismatch diff', {
|
|
184
|
-
expectedAuth,
|
|
185
|
-
incomingAuth,
|
|
186
|
-
reqToSign,
|
|
187
|
-
signedHeaders: signed.headers,
|
|
188
|
-
});
|
|
189
|
-
return sendResponse(req, res, { ok: false, error: 'SigV4 signature mismatch' }, 403);
|
|
190
|
-
}
|
|
191
|
-
return next();
|
|
192
|
-
}
|
|
193
|
-
catch (err) {
|
|
194
|
-
return sendResponse(req, res, { ok: false, error: 'SigV4 verification failed' }, 403);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
151
|
// Helper: verifies a JWT and returns normalized result
|
|
198
152
|
function verifyJwtToken(token) {
|
|
199
153
|
ensureStarted();
|
|
@@ -211,45 +165,6 @@ function verifyJwtToken(token) {
|
|
|
211
165
|
return { ok: false, reason: 'invalid_token' };
|
|
212
166
|
}
|
|
213
167
|
}
|
|
214
|
-
// Helper: refresh an expired JWT within a grace window. Does not refresh provisional tokens.
|
|
215
|
-
function refreshJwtToken(token) {
|
|
216
|
-
ensureStarted();
|
|
217
|
-
// If token is still valid, don't refresh
|
|
218
|
-
try {
|
|
219
|
-
jwt.verify(token, JWT_SECRET);
|
|
220
|
-
return { ok: false, reason: 'not_expired' };
|
|
221
|
-
}
|
|
222
|
-
catch (err) {
|
|
223
|
-
console.log('refreshJwtToken verify error - Error name:', err && err.name, 'Error message:', err && err.message);
|
|
224
|
-
if (!err || err.name !== 'TokenExpiredError')
|
|
225
|
-
return { ok: false, reason: 'invalid_token' };
|
|
226
|
-
// Token expired — verify signature ignoring expiration
|
|
227
|
-
let payload;
|
|
228
|
-
try {
|
|
229
|
-
payload = jwt.verify(token, JWT_SECRET, { ignoreExpiration: true });
|
|
230
|
-
}
|
|
231
|
-
catch (_e) {
|
|
232
|
-
console.log('refreshJwtToken ignoreExpiration verify error - Error name:', _e && _e.name, 'Error message:', _e && _e.message);
|
|
233
|
-
return { ok: false, reason: 'invalid_token' };
|
|
234
|
-
}
|
|
235
|
-
// Do not refresh provisional tokens
|
|
236
|
-
if (payload && payload.userType === 'provisional')
|
|
237
|
-
return { ok: false, reason: 'provisional_forbidden' };
|
|
238
|
-
// Check expiry field and grace window
|
|
239
|
-
const exp = payload && payload.exp ? Number(payload.exp) : undefined;
|
|
240
|
-
if (!exp)
|
|
241
|
-
return { ok: false, reason: 'invalid_token' };
|
|
242
|
-
const now = Math.floor(Date.now() / 1000);
|
|
243
|
-
const refreshWindow = REFRESH_WINDOW_SEC;
|
|
244
|
-
if (refreshWindow > 0 && now - exp > refreshWindow)
|
|
245
|
-
return { ok: false, reason: 'refresh_window_exceeded' };
|
|
246
|
-
// Remove iat/exp/nbf before signing new token
|
|
247
|
-
const { iat, exp: _exp, nbf, ...rest } = payload;
|
|
248
|
-
const expiresIn = JWT_EXPIRES_IN;
|
|
249
|
-
const newToken = jwt.sign(rest, JWT_SECRET, { expiresIn });
|
|
250
|
-
return { ok: true, token: newToken, expiresIn };
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
168
|
// Endpoint: token verification API
|
|
254
169
|
app.post('/verify-token', (req, res) => {
|
|
255
170
|
const header = req.headers['authorization'];
|
|
@@ -268,7 +183,7 @@ app.post('/verify-token', (req, res) => {
|
|
|
268
183
|
return sendResponse(req, res, { ok: false, reason: 'invalid_token' }, 403);
|
|
269
184
|
});
|
|
270
185
|
// Endpoint: refresh an expired token within grace window
|
|
271
|
-
app.post('/refresh-token', (req, res) => {
|
|
186
|
+
app.post('/refresh-token', async (req, res) => {
|
|
272
187
|
const header = req.headers['authorization'];
|
|
273
188
|
const customHeader = req.headers['x-revlm-jwt'];
|
|
274
189
|
const tokenFromHeader = header && header.split(' ')[1];
|
|
@@ -276,19 +191,71 @@ app.post('/refresh-token', (req, res) => {
|
|
|
276
191
|
const token = (req.body && req.body.token) || tokenFromCustom || tokenFromHeader;
|
|
277
192
|
if (!token)
|
|
278
193
|
return sendResponse(req, res, { ok: false, reason: 'no_token' }, 400);
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
switch (result.reason) {
|
|
284
|
-
case 'not_expired':
|
|
194
|
+
try {
|
|
195
|
+
let decoded;
|
|
196
|
+
try {
|
|
197
|
+
jwt.verify(token, JWT_SECRET);
|
|
285
198
|
return sendResponse(req, res, { ok: false, reason: 'not_expired' }, 400);
|
|
286
|
-
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
console.log('refresh-token verify error - name:', err && err.name, 'message:', err && err.message);
|
|
202
|
+
if (!err || err.name !== 'TokenExpiredError') {
|
|
203
|
+
return sendResponse(req, res, { ok: false, reason: 'invalid_token' }, 403);
|
|
204
|
+
}
|
|
205
|
+
decoded = jwt.verify(token, JWT_SECRET, { ignoreExpiration: true });
|
|
206
|
+
}
|
|
207
|
+
if (!decoded || !decoded._id)
|
|
208
|
+
return sendResponse(req, res, { ok: false, reason: 'invalid_token' }, 403);
|
|
209
|
+
if (decoded.userType === 'provisional')
|
|
287
210
|
return sendResponse(req, res, { ok: false, reason: 'provisional_forbidden' }, 403);
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
211
|
+
const cookies = parseCookies(req);
|
|
212
|
+
const refreshCookie = cookies[REFRESH_COOKIE_NAME];
|
|
213
|
+
if (!refreshCookie)
|
|
214
|
+
return sendResponse(req, res, { ok: false, reason: 'no_refresh_secret' }, 401);
|
|
215
|
+
let refreshPayload;
|
|
216
|
+
try {
|
|
217
|
+
refreshPayload = jwt.verify(refreshCookie, REFRESH_SECRET_SIGNING_KEY, { algorithms: ['HS256'], ignoreExpiration: true });
|
|
218
|
+
}
|
|
219
|
+
catch (_e) {
|
|
220
|
+
console.log('refresh-token refresh secret verify error - name:', _e && _e.name, 'message:', _e && _e.message);
|
|
221
|
+
return sendResponse(req, res, { ok: false, reason: 'refresh_secret_invalid' }, 403);
|
|
222
|
+
}
|
|
223
|
+
const userCol = getClient().db(USERS_DB_NAME).collection(USERS_COLLECTION);
|
|
224
|
+
const subId = toObjectId(refreshPayload.sub);
|
|
225
|
+
if (!subId)
|
|
226
|
+
return sendResponse(req, res, { ok: false, reason: 'invalid_token' }, 403);
|
|
227
|
+
const user = await userCol.findOne({ _id: subId });
|
|
228
|
+
if (!user)
|
|
291
229
|
return sendResponse(req, res, { ok: false, reason: 'invalid_token' }, 403);
|
|
230
|
+
if (String(decoded._id) !== String(user._id))
|
|
231
|
+
return sendResponse(req, res, { ok: false, reason: 'invalid_token' }, 403);
|
|
232
|
+
try {
|
|
233
|
+
ensureRefreshSecretValid(user, refreshPayload);
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
const reason = err?.message || 'refresh_secret_invalid';
|
|
237
|
+
const status = reason === 'refresh_secret_expired' ? 401 : 403;
|
|
238
|
+
return sendResponse(req, res, { ok: false, reason }, status);
|
|
239
|
+
}
|
|
240
|
+
const match = await bcrypt.compare(refreshPayload.rs, user.refreshSecretHash || '');
|
|
241
|
+
if (!match)
|
|
242
|
+
return sendResponse(req, res, { ok: false, reason: 'refresh_secret_invalid' }, 403);
|
|
243
|
+
const exp = decoded && decoded.exp ? Number(decoded.exp) : undefined;
|
|
244
|
+
const now = Math.floor(Date.now() / 1000);
|
|
245
|
+
const refreshWindow = REFRESH_WINDOW_SEC;
|
|
246
|
+
if (refreshWindow > 0 && exp && now - exp > refreshWindow) {
|
|
247
|
+
return sendResponse(req, res, { ok: false, reason: 'refresh_window_exceeded' }, 403);
|
|
248
|
+
}
|
|
249
|
+
const { iat, exp: _exp, nbf, ...rest } = decoded;
|
|
250
|
+
const expiresIn = JWT_EXPIRES_IN;
|
|
251
|
+
const newToken = jwt.sign(rest, JWT_SECRET, { expiresIn });
|
|
252
|
+
const refreshed = await issueRefreshSecret(user._id);
|
|
253
|
+
setRefreshCookie(res, refreshed.signed);
|
|
254
|
+
return sendResponse(req, res, { ok: true, token: newToken, expiresIn }, 200);
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
console.log('refresh-token unexpected error - name:', err && err.name, 'message:', err && err.message);
|
|
258
|
+
return sendResponse(req, res, { ok: false, reason: 'invalid_token' }, 500);
|
|
292
259
|
}
|
|
293
260
|
});
|
|
294
261
|
function toObjectId(id) {
|
|
@@ -360,9 +327,8 @@ async function startServer(config) {
|
|
|
360
327
|
throw new Error('usersCollectionName is required in ServerConfig');
|
|
361
328
|
if (!merged.jwtSecret)
|
|
362
329
|
throw new Error('jwtSecret is required in ServerConfig');
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
throw new Error('sigv4SecretKey or REVLM_SIGV4_SECRET_KEY is required when sigv4Required is true');
|
|
330
|
+
if (!merged.refreshSecretSigningKey)
|
|
331
|
+
throw new Error('refreshSecretSigningKey is required in ServerConfig');
|
|
366
332
|
// provisional checks
|
|
367
333
|
const provisionalEnabled = !!merged.provisionalLoginEnabled;
|
|
368
334
|
if (provisionalEnabled) {
|
|
@@ -385,22 +351,7 @@ async function startServer(config) {
|
|
|
385
351
|
JWT_SECRET = merged.jwtSecret;
|
|
386
352
|
JWT_EXPIRES_IN = merged.jwtExpiresIn;
|
|
387
353
|
REFRESH_WINDOW_SEC = merged.refreshWindowSec;
|
|
388
|
-
|
|
389
|
-
SIGV4_ACCESS_KEY = merged.sigv4AccessKey || process.env.REVLM_SIGV4_ACCESS_KEY || 'revlm-access';
|
|
390
|
-
SIGV4_REGION = merged.sigv4Region || process.env.REVLM_SIGV4_REGION || 'revlm';
|
|
391
|
-
SIGV4_SERVICE = merged.sigv4Service || process.env.REVLM_SIGV4_SERVICE || 'revlm';
|
|
392
|
-
SIGV4_REQUIRED = merged.sigv4Required ?? true;
|
|
393
|
-
if (SIGV4_REQUIRED) {
|
|
394
|
-
sigv4Verifier = new signature_v4_1.SignatureV4({
|
|
395
|
-
credentials: { accessKeyId: SIGV4_ACCESS_KEY, secretAccessKey: SIGV4_SECRET_KEY },
|
|
396
|
-
region: SIGV4_REGION,
|
|
397
|
-
service: SIGV4_SERVICE,
|
|
398
|
-
sha256: sha256_js_1.Sha256,
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
sigv4Verifier = undefined;
|
|
403
|
-
}
|
|
354
|
+
REFRESH_SECRET_SIGNING_KEY = merged.refreshSecretSigningKey;
|
|
404
355
|
if (PROVISIONAL_LOGIN_ENABLED) {
|
|
405
356
|
plpaServer = new auth_token_1.AuthServer({ secretMaster: PROVISIONAL_AUTH_SECRET_MASTER, authDomain: PROVISIONAL_AUTH_DOMAIN });
|
|
406
357
|
}
|
|
@@ -439,7 +390,6 @@ async function startServer(config) {
|
|
|
439
390
|
}
|
|
440
391
|
next();
|
|
441
392
|
});
|
|
442
|
-
app.use(verifySigV4);
|
|
443
393
|
if (PROVISIONAL_LOGIN_ENABLED) {
|
|
444
394
|
app.post('/provisional-login', async (req, res) => {
|
|
445
395
|
const { authId, password } = req.body;
|
|
@@ -484,6 +434,8 @@ async function startServer(config) {
|
|
|
484
434
|
return sendResponse(req, res, { ok: false, error: 'Authentication failed' }, 401);
|
|
485
435
|
const { _id, userType, roles } = user;
|
|
486
436
|
const token = jwt.sign({ _id, userType, roles }, JWT_SECRET, { expiresIn: JWT_EXPIRES_IN });
|
|
437
|
+
const refreshSecret = await issueRefreshSecret(_id);
|
|
438
|
+
setRefreshCookie(res, refreshSecret.signed);
|
|
487
439
|
try {
|
|
488
440
|
const decoded = jwt.decode(token);
|
|
489
441
|
console.log('TOKEN PAYLOAD (login):', decoded);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/start.js
CHANGED
|
@@ -33,11 +33,7 @@ async function main() {
|
|
|
33
33
|
jwtExpiresIn: getEnvOrUndefined('JWT_EXPIRES_IN'),
|
|
34
34
|
refreshWindowSec: toNumber(getEnvOrUndefined('REFRESH_WINDOW_SEC')),
|
|
35
35
|
port: toNumber(getEnvOrUndefined('PORT')),
|
|
36
|
-
|
|
37
|
-
sigv4AccessKey: getEnvOrUndefined('REVLM_SIGV4_ACCESS_KEY'),
|
|
38
|
-
sigv4Region: getEnvOrUndefined('REVLM_SIGV4_REGION'),
|
|
39
|
-
sigv4Service: getEnvOrUndefined('REVLM_SIGV4_SERVICE'),
|
|
40
|
-
sigv4Required: toBool(getEnvOrUndefined('REVLM_SIGV4_REQUIRED')),
|
|
36
|
+
refreshSecretSigningKey: getEnvOrUndefined('REFRESH_SECRET_SIGNING_KEY'),
|
|
41
37
|
};
|
|
42
38
|
// Remove undefined entries so optional properties are omitted (satisfies exactOptionalPropertyTypes)
|
|
43
39
|
const cfgPartial = Object.fromEntries(Object.entries(raw).filter(([, v]) => v !== undefined));
|
package/dist/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";;AAAA,mCAAgD;AAChD,IAAA,eAAY,GAAE,CAAC;AACf,qCAAiE;AAEjE,SAAS,MAAM,CAAC,CAAqB;IACnC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,CAAqB;IACrC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAwB;QAC/B,QAAQ,EAAE,iBAAiB,CAAC,WAAW,CAAC;QACxC,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAAC;QAC/C,mBAAmB,EAAE,iBAAiB,CAAC,uBAAuB,CAAC;QAC/D,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QAC/E,iBAAiB,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;QAC3D,2BAA2B,EAAE,iBAAiB,CAAC,gCAAgC,CAAC;QAChF,qBAAqB,EAAE,iBAAiB,CAAC,yBAAyB,CAAC;QACnE,SAAS,EAAE,iBAAiB,CAAC,YAAY,CAAC;QAC1C,YAAY,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;QACjD,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;QACnE,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzC,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kedaruma/revlm-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.22",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Self-hosted replacement for MongoDB Realm App Services that brokers auth and MongoDB calls.",
|
|
6
6
|
"keywords": [
|
|
@@ -22,8 +22,6 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@aws-crypto/sha256-js": "^5.2.0",
|
|
26
|
-
"@aws-sdk/signature-v4": "^3.374.0",
|
|
27
25
|
"bson": "^6.10.4",
|
|
28
26
|
"dotenv": "^17.2.3",
|
|
29
27
|
"express": "^5.1.0",
|
|
@@ -34,6 +32,7 @@
|
|
|
34
32
|
"@kedaruma/revlm-shared": "1.0.5"
|
|
35
33
|
},
|
|
36
34
|
"devDependencies": {
|
|
35
|
+
"@types/bcrypt": "^5.0.2",
|
|
37
36
|
"mongodb-memory-server": "^8.12.2"
|
|
38
37
|
},
|
|
39
38
|
"scripts": {
|