MCPcopy Index your code
hub / github.com/TomDoesTech/REST-API-Tutorial / deserializeUser

Function deserializeUser

src/middleware/deserializeUser.ts:6–46  ·  view source on GitHub ↗
(
  req: Request,
  res: Response,
  next: NextFunction
)

Source from the content-addressed store, hash-verified

4import { reIssueAccessToken } from "../service/session.service";
5
6const deserializeUser = async (
7 req: Request,
8 res: Response,
9 next: NextFunction
10) => {
11 const accessToken = get(req, "headers.authorization", "").replace(
12 /^Bearer\s/,
13 ""
14 );
15
16 const refreshToken = get(req, "headers.x-refresh");
17
18 if (!accessToken) return next();
19
20 const { decoded, expired } = decode(accessToken);
21
22 if (decoded) {
23 // @ts-ignore
24 req.user = decoded;
25
26 return next();
27 }
28
29 if (expired && refreshToken) {
30 const newAccessToken = await reIssueAccessToken({ refreshToken });
31
32 if (newAccessToken) {
33 // Add the new access token to the response header
34 res.setHeader("x-access-token", newAccessToken);
35
36 const { decoded } = decode(newAccessToken);
37
38 // @ts-ignore
39 req.user = decoded;
40 }
41
42 return next();
43 }
44
45 return next();
46};
47
48export default deserializeUser;

Callers

nothing calls this directly

Calls 2

decodeFunction · 0.90
reIssueAccessTokenFunction · 0.90

Tested by

no test coverage detected