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

Function deserializeUser

src/middleware/deserializeUser.ts:6–43  ·  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) {
19 return next();
20 }
21
22 const { decoded, expired } = verifyJwt(accessToken, "accessTokenPublicKey");
23
24 if (decoded) {
25 res.locals.user = decoded;
26 return next();
27 }
28
29 if (expired && refreshToken) {
30 const newAccessToken = await reIssueAccessToken({ refreshToken });
31
32 if (newAccessToken) {
33 res.setHeader("x-access-token", newAccessToken);
34 }
35
36 const result = verifyJwt(newAccessToken as string, "accessTokenPublicKey");
37
38 res.locals.user = result.decoded;
39 return next();
40 }
41
42 return next();
43};
44
45export default deserializeUser;

Callers

nothing calls this directly

Calls 2

verifyJwtFunction · 0.90
reIssueAccessTokenFunction · 0.90

Tested by

no test coverage detected