UNPKG

686 BPlain TextView Raw
1import * as express from 'express';
2import { AccountsServer } from '@accounts/server';
3
4export const userLoader = (accountsServer: AccountsServer) => async (
5 req: express.Request,
6 res: express.Response,
7 next: any
8) => {
9 let accessToken =
10 req.headers?.Authorization || req.headers?.authorization || req.body?.accessToken || undefined;
11 accessToken = accessToken && accessToken.replace('Bearer ', '');
12 if (accessToken) {
13 try {
14 (req as any).authToken = accessToken;
15 const user = await accountsServer.resumeSession(accessToken);
16 (req as any).user = user;
17 (req as any).userId = user.id;
18 } catch (e) {
19 // Do nothing
20 }
21 }
22 next();
23};