Tôi đang triển khai API RESTful với Express in Node và tôi mới sử dụng cả hai. Tôi muốn sử dụng xác thực cơ bản để kiểm soát quyền truy cập.Có thể áp dụng xác thực cơ bản/phần mềm trung gian trên các tuyến với danh sách trắng trong Express không?
Tôi muốn áp dụng nó bằng cách sử dụng một cái gì đó như một danh sách trắng nhưng tôi không chắc chắn làm thế nào để làm điều đó.
Blacklisting rất dễ dàng, tôi có thể chỉ tiêu của tôi #VERB
cuộc gọi với đối số thứ hai:
app.get('/', asyncAuth, requestHandler);
Tôi có thể đi mà thậm chí xa hơn và danh sách đen tất cả mọi thứ với:
app.all('*', asyncAuth, requestHandler);
Nhưng tôi muốn áp dụng basicAuth của tôi cho mỗi tuyến đường duy nhất, ngoại trừ cho POST /users
. Có cách nào thanh lịch để làm điều đó không? Tôi có thể sử dụng cách tiếp cận 'danh sách đen' sau đó chọn lọc loại bỏ nó khỏi các tuyến đường tôi muốn không? Tôi không thể hiểu được làm thế nào.
câu hỏi thú vị, tôi đoán câu hỏi của bạn là chi tiết của "Làm thế nào để chọn một tuyến đường phủ định ", nghĩa là, phù hợp với mọi tuyến đường ngoại trừ một số tuyến đường tốc hành - duyên dáng. Bạn có thể thử kết hợp các tuyến đường với regex và phủ nhận "/ người dùng", một cái gì đó như http://stackoverflow.com/questions/6586197/expressjs-bind-all-routes-except-2-folders? –
Cảm ơn bạn! Tôi đã gặp rắc rối từ ngữ nó. Chọn một tuyến đường tiêu cực là những gì tôi muốn làm. Tôi đã xem xét sử dụng regex, nó sẽ hoạt động, nhưng nó có cảm giác hơi giống một hack. Nó có vẻ như phải có một cách đẹp hơn. – Terraflubb