1 | import * as express from 'express';
|
2 | import { AccountsServer } from '@accounts/server';
|
3 |
|
4 | export 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 |
|
20 | }
|
21 | }
|
22 | next();
|
23 | };
|