Download api/server/middleware/validateImageRequest.js from Zhitomir/chat: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/spaces/Zhitomir/chat/resolve/main/api/server/middleware/validateImageRequest.js
- Command line
-
hf download hf://spaces/Zhitomir/chat/api/server/middleware/validateImageRequest.js
-
curl -L -o validateImageRequest.js https://huggingface.co/spaces/Zhitomir/chat/resolve/main/api/server/middleware/validateImageRequest.js
1.24 kB
| const cookies = require('cookie'); | |
| const jwt = require('jsonwebtoken'); | |
| const { logger } = require('~/config'); | |
| /** | |
| * Middleware to validate image request. | |
| * Must be set by `secureImageLinks` via custom config file. | |
| */ | |
| function validateImageRequest(req, res, next) { | |
| if (!req.app.locals.secureImageLinks) { | |
| return next(); | |
| } | |
| const refreshToken = req.headers.cookie ? cookies.parse(req.headers.cookie).refreshToken : null; | |
| if (!refreshToken) { | |
| logger.warn('[validateImageRequest] Refresh token not provided'); | |
| return res.status(401).send('Unauthorized'); | |
| } | |
| let payload; | |
| try { | |
| payload = jwt.verify(refreshToken, process.env.JWT_REFRESH_SECRET); | |
| } catch (err) { | |
| logger.warn('[validateImageRequest]', err); | |
| return res.status(403).send('Access Denied'); | |
| } | |
| const currentTimeInSeconds = Math.floor(Date.now() / 1000); | |
| if (payload.exp < currentTimeInSeconds) { | |
| logger.warn('[validateImageRequest] Refresh token expired'); | |
| return res.status(403).send('Access Denied'); | |
| } | |
| if (req.path.includes(payload.id)) { | |
| logger.debug('[validateImageRequest] Image request validated'); | |
| next(); | |
| } else { | |
| res.status(403).send('Access Denied'); | |
| } | |
| } | |
| module.exports = validateImageRequest; | |