Как связать файлы stati c с пользователем в Express? - PullRequest
0 голосов
/ 28 мая 2020

Я хочу связать файлы stati c с конкретными пользователями в express и установить какую-то аутентификацию, чтобы определенный набор файлов мог видеть только тот пользователь, с которым они связаны.

Я использую Multer для загрузки файлов. Мое промежуточное ПО обслуживает все запрошенные файлы.

app.use(express.static(path.join(__dirname, "public")));

В моей SQL базе данных я храню путь к изображению вместе с user_id. Теперь, когда запрашивается ресурс, я хочу убедиться, владеет ли запрашивающий пользователь им, в противном случае отклонить запрос.

1 Ответ

1 голос
/ 28 мая 2020

Вы можете добавить функцию промежуточного программного обеспечения прямо перед ним и проверить, разрешен ли запрос - что-то вроде этого.

app.use(checkUser, express.static(path.join(__dirname, "public")));

checkUser тогда должна быть функцией промежуточного программного обеспечения, которая проверяет, разрешено ли пользователю запрашивать этот конкретный URL. Если нет, то он возвращает ошибку и НЕ вызывает next(), поэтому express.static() никогда не видит запрос. Если пользователю разрешено, то промежуточное ПО вызывает next() и express.static() и проверяет, может ли он обслуживать этот URL.

...